JDBC ResultSet getDate丢失精度

时间:2010-07-16 15:39:20

标签: java oracle date jdbc resultset

我在ResultSet.getDate(x)调用中失去了精度。基本上是:

rs = ps.executeQuery();
rs.getDate("MODIFIED");

返回截断日期,其中MODIFIED是默认精度的Oracle TIMESTAMP字段。我想可能会有一些我错过的JDBC调整;通常TIMESTAMP与DATE兼容,但我希望我不必重新定义整个表。

3 个答案:

答案 0 :(得分:63)

ResultSet.getDate()返回java.sql.Date,而不是java.util.Date。它被定义为一个永恒的日期。 如果您需要时间戳,请使用ResultSet.getTimestamp()

答案 1 :(得分:4)

您应该使用java.sql.Timestamp而不是java.sql.Date。如有必要,您可以在以后将其用作java.util.Date对象。

rs = ps.executeQuery();
Timestamp timestamp = rs.getTimestamp("MODIFIED");

希望这有帮助。

答案 2 :(得分:0)

使用Timestap是正确的方法。 请不要使用Timestamp,如果您使用Liquibase,则无法将列设置为可为空。

我遇到的一个问题。