JDBC ResultSet getDate丢失精度

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

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

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

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

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

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

希望这可以帮助。

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

我遇到的一个问题。