首页 > 解决方案 > 在存储 Java 8 LocalTime 时,我应该在 Oracle 数据库中使用哪种数据类型?

问题描述

在大多数其他数据库中,我们会使用 TIME 数据类型,但 Oracle 似乎没有它。

我已经尝试过 VARCHAR(它最终存储为 1970 年 1 月)和一个 TIMESTAMP(存储为 1970 年 1 月,时间正确,但它不允许再次检索)。

标签: javaoraclejava-time

解决方案


您可以使用以下数据类型:

  • TIMESTAMP具有恒定的年、月和日(您可以在列上放置检查约束以强制只更改时间组件);
  • DATE具有恒定的年、月和日(如果您不担心小数秒;同样,您可以使用检查约束);
  • INTERVAL DAY(0) TO SECOND; 或者
  • VARCHAR2作为格式化的时间字符串。

无论您使用什么,都需要先将其从 JavaLocalTime对象转换为适当的数据类型,然后再将其保存在数据库中,然后在检索它时反转转换。


推荐阅读