我正在使用JDBC和MySQL。我有一个日期列,我需要包含在我的结果集中。不幸的是,我找不到Java中的类来检索日期。不推荐使用SQL Date类。如何从结果集中获取Date对象?
答案 0 :(得分:19)
您使用java.sql.Date。不推荐使用构造函数和一些方法。班级不是。对此感到困惑,比如java.util.Date或java.util.Calendar?请看Making Sense of Java's Dates。
有三种JDBC日期/时间类型:
混淆可能源于java.sql.Date扩展java.util.Date并因此继承其弃用的方法。
只需使用正确的类型作为列的类型。
答案 1 :(得分:3)
我不认为java.sql.Date类本身不推荐使用,只是它的一个构造函数。你应该可以安全地继续使用它。
答案 2 :(得分:2)
旧帖子,但无论如何:
我遇到java.util.Date的粒度问题,并切换到java.util.Timestamp。 我也经历了有限时间戳类型的粒度(最多秒)。
数据库中的列被声明为Date并获取额外的时间部分,我将其检索为Timestamp。问题是它将值截断为秒。
我调查了时间戳的Oracle默认定义,它允许6个小数位。
我猜oracle定义中的Date部分限制了Java中的时间戳部分...
干杯, Grazina
答案 3 :(得分:1)
您可以安全地使用java.sql.Date类来映射您的MySQL DATE类型。 java.sql.Date类扩展了java.util.Date类,因此您可以使用此对象执行所有类型的日期计算。