在JDBC中,何时使用Time、Date和Timestamp?

10

JDBC提供了三种不同的时间相关字段数据类型:"Date","Time"和"Timestamp"。请问有人能够简明扼要地介绍每种类型的用途以及在给定问题中如何选择使用哪种类型?

1个回答

18

假设你在数据库列中存储了日期/时间为 2003 年 1 月 1 日下午 2:00 的数据。以下是三个选项的使用方式:

如果只关心日期部分,请使用 Date。

  • 例如:2003 年 1 月 1 日

如果只关心时间部分,请使用 Time。

  • 例如:下午 2:00

如果想要日期和时间,请使用 Timestamp。

  • 例如:2003 年 1 月 1 日下午 2:00

日期存储时间。时间戳可以比日期具有更精细的时间分辨率。 - Gandalf
这个答案听起来不错,但我相当确定它是不准确的。java.sql.Date对象包含时间(精确到毫秒)。 - mcherm
2
这是正确的,但是当您使用ResultSet.getDate()方法检索日期时,它会将Date的时间部分设置为00:00。这就是JDBC在使用getDate时所谓的“规范化”,因为getDate返回一个java.util.Date对象。 - Mr. Will
好的,经过进一步研究,事实证明你是正确的。谢谢。 - mcherm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接