我正在将 Oracle 数据库与我的 Java 应用程序一起使用。在数据库中,我创建了一个表,其列类型为 DATE
然后我的应用程序用一些精确到秒的日期填充了这个表。
现在我的应用程序能够以秒的精度检索日期,并且一切正常。不过我正在使用Oracle SQL Developer
密切关注数据库中的内容,当我从 TableView 中的 DATE
列中查看表时,我的问题来了我只能看到 16/09/07
格式的日期没有小时/分钟/秒的时间。
如果我运行脚本:
select SAVED_DATE from MY_TABLE;
它返回格式为 16/09/07
的所有日期没有小时/分钟/秒的时间。
如何从 Oracle SQL Developer 检查该列中存储的精确时间?
最佳答案
参见ixora 。与其他数据库和 Java 不同的是,Oracle 的 DATE
数据类型还包含小时、分钟和秒。
byte 1: century + 100
byte 2: year + 100
byte 3: month
byte 4: day of month
byte 5: hour + 1
byte 6: minute + 1
byte 7: second + 1
让您感到困惑的是到 VARCHAR2 的隐式数据类型转换。这是由 session 参数 NLS_DATE_FORMAT
驱动的。
xQbert 是对的,将 SQLDeveloper 设置中的 NLS_DATE_FORMAT 更改为“YYYY-MM-DD HH24:MI:SS”。
关于java - Oracle SQL Developer,DATE是如何存储的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39370252/