我在ResultSet.getDate(x)調用中失去精度。基本上:JDBC ResultSet getDate失去精度
rs = ps.executeQuery();
rs.getDate("MODIFIED");
返回的日期被截斷到MODIFIED是默認精度的Oracle TIMESTAMP字段的那一天。我認爲可能會有一些我缺少的JDBC調整;通常TIMESTAMP與DATE兼容,但我希望不必重新定義整個表格。
我在ResultSet.getDate(x)調用中失去精度。基本上:JDBC ResultSet getDate失去精度
rs = ps.executeQuery();
rs.getDate("MODIFIED");
返回的日期被截斷到MODIFIED是默認精度的Oracle TIMESTAMP字段的那一天。我認爲可能會有一些我缺少的JDBC調整;通常TIMESTAMP與DATE兼容,但我希望不必重新定義整個表格。
ResultSet.getDate()
返回一個java.sql.Date
,而不是java.util.Date
。它被定義爲一個永恆的日期。 如果您想要時間戳,請使用ResultSet.getTimestamp()
!
您應該使用java.sql.Timestamp而不是java.sql.Date。如有必要,您可以在以後將其用作java.util.Date對象。
rs = ps.executeQuery();
Timestamp timestamp = rs.getTimestamp("MODIFIED");
希望這會有所幫助。
自'Timestamp extends Date'以來,構造'new Date'是不必要的。 – BalusC 2010-07-16 15:56:17
使用Timestap是正確的方法。 請不要使用Timestamp,如果您要使用Liquibase,您將無法將列設置爲空。
我遇到了一個問題。
注意自rtfm。我認爲這是在其他地方工作。 – orbfish 2010-07-19 13:43:50
「java.sql.Date被定義爲一個永恆的日期」。那句話拯救了我的生命。謝謝! – Tiago 2012-08-28 04:37:45