ResultSet.getDate(x)呼び出しの精度が失われています。基本的に:
rs = ps.executeQuery();
rs.getDate("MODIFIED");
は、MODIFIEDがデフォルトの精度のOracleTIMESTAMPフィールドである日に切り捨てられた日付を返します。私が見逃しているJDBCの微調整があるかもしれないと思います。通常、TIMESTAMPはDATEと互換性がありますが、テーブル全体を再定義する必要がないことを望んでいます。
ResultSet.getDate()
は、_Java.sql.Date
_ではなく_Java.util.Date
_を返します。それは時代を超越した日付であると定義されています。タイムスタンプが必要な場合は、 ResultSet.getTimestamp()
!を使用してください。
Java.sql.Dateの代わりにJava.sql.Timestampを使用する必要があります。必要に応じて、後でJava.util.Dateオブジェクトとして使用できます。
rs = ps.executeQuery();
Timestamp timestamp = rs.getTimestamp("MODIFIED");
お役に立てれば。
タイムスタンプの使用は正しい方法です。タイムスタンプでは、Liquibaseを使用する場合、列をnull許容に設定できないことに注意してください。
私も遭遇した問題。