JDBC 结果集 getDate 失去精度
我在 ResultSet.getDate(x) 调用中失去了精度。基本上:
rs = ps.executeQuery();
rs.getDate("MODIFIED");
返回截断为 MODIFIED 是默认精度的 Oracle TIMESTAMP 字段的日期的日期。我认为我可能缺少一些 JDBC 调整;通常 TIMESTAMP 与 DATE 兼容,但我希望不必重新定义整个表。
I am losing precision in my ResultSet.getDate(x) calls. Basically:
rs = ps.executeQuery();
rs.getDate("MODIFIED");
is returning dates truncated to the day where MODIFIED is an Oracle TIMESTAMP field of default precision. I think there may be some JDBC tweak I'm missing; usually TIMESTAMP is compatible with DATE, but I'm hoping I don't have to redefine the entire table.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
ResultSet.getDate()
返回一个java.sql.Date
,而不是java.util.Date
。它被定义为一个永恒的日期。如果您想要时间戳,请使用 <代码>ResultSet.getTimestamp()!
ResultSet.getDate()
returns ajava.sql.Date
, not ajava.util.Date
. It is defined to be a timeless date.If you want a timestamp, use
ResultSet.getTimestamp()
!您应该使用 java.sql.Timestamp 而不是 java.sql.Date。如果需要的话,您可以稍后将其用作 java.util.Date 对象。
希望这有帮助。
You should use java.sql.Timestamp instead of java.sql.Date. You can use it as a java.util.Date object afterward if necessary.
Hope this helps.
使用Timestap是正确的方法。
请注意,如果您要使用 Liquibase,则使用 Timestamp 将无法将列设置为可为空。
我也遇到过一个问题。
Using Timestap is the correct way.
Please take not that with Timestamp you will not be able to set the columns to nullable if you were to use Liquibase.
A problem I came across as well.