ChatGPT解决这个技术问题 Extra ChatGPT

oracle DATE 和 TIMESTAMP 的区别

Oracle DATE 和 TIMESTAMP 类型有什么区别?两者都有日期和时间部分?这些日期类型在 Java 中的对应类型是什么?

TIMESTAMPDATE 相同,只是它增加了小数秒精度。
最大的区别:DATE 精确到秒并且没有小数秒。 TIMESTAMP 有小数秒。秒中的小数位数取决于服务器操作系统,例如,我的 Windows 7 机器上的 Oracle 为时间戳返回三位小数,而客户端的巨大 Solaris 框返回六位。时间戳也可以保存一个特定的时区或标准化为公共时区 - 转到 here 然后搜索“TIMESTAMP”以获取更多信息,然后进行一些实验:)

G
Guillermo Luque

DATE 和 TIMESTAMP 具有相同的大小(7 个字节)。这些字节用于存储世纪、十年、年、月、日、小时、分钟和秒。但是 TIMESTAMP 允许存储附加信息,例如小数秒(11 个字节)和带时区的小数秒(13 个字节)。

TIMESTAMP 被添加为符合 ANSI 的 Oracle。在此之前,它只有 DATE。

在一般情况下,您应该使用 DATE。但是,如果需要时间精度,请使用 TIMESTAMP。

关于 Java,Oracle JDBC 驱动程序中的 oracle.sql.DATE 类提供了 Oracle Date/Timestamp 数据类型与 Java 类 java.sql.Date、java.sql.Time 和 java.sql.Timestamp 之间的转换。


一句警告:不幸的是,默认情况下,当您在 Oracle 中查询 DATE 列时,它只会返回“日期”,但如果您将其转换为 TO_TIMESTAMP(DATE_COLUMN_NAME) ,那么它会返回更精确的结果。不知何故,这不是 jdbc/hibernate 的默认设置,至少它不在这里。
“在一般情况下,您应该使用 DATE”——但究竟为什么呢?
您应该使用 TIMESTAMP WITH TIME ZONE。否则夏令时将引入不明确的时间。
我发现它真的很令人困惑,DATE 类型包含 TIME 信息。这不是这个词的意思。
@Daddy32 TIMESTAMP 是在 DATE 大约 20 年后添加的。他们不能真正回去改变DATE
M
Marcin Badtke

https://i.stack.imgur.com/yOVlg.png

https://i.stack.imgur.com/0XHtB.png


你为什么在你的帖子中使用这么多插图而不是写出来?
@mast,因为这是我想要做的 - 说明问题/解决方案。这就是人类习惯的——图片。这很自然,也更容易记住。
@MarcinBadtke 非常感谢您的努力!