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.
ResultSet.getDate()
returns a java.sql.Date
, not a java.util.Date
. It is defined to be a timeless date.
If you want a timestamp, use ResultSet.getTimestamp()
!
You should use java.sql.Timestamp instead of java.sql.Date. You can use it as a java.util.Date object afterward if necessary.
rs = ps.executeQuery();
Timestamp timestamp = rs.getTimestamp("MODIFIED");
Hope this helps.
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.