JDBC 结果集获取日期丢失精度

2022-09-01 15:08:11

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

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

返回被截断的日期,其中修改是默认精度的 Oracle 时间戳字段。我认为我可能缺少一些JDBC调整;通常TIMESTAMP与DATE兼容,但我希望我不必重新定义整个表。


答案 1

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


答案 2

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

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

希望这有帮助。