JDBC ResultSet getDate losing precision
24,138
Solution 1
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()
!
Solution 2
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.
Related videos on Youtube
Author by
orbfish
Updated on July 09, 2022Comments
-
orbfish almost 2 years
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.
-
BalusC almost 14 yearsConstructing
new Date
is unnecessary sinceTimestamp extends Date
. -
orbfish almost 14 yearsNote to self - rtfm. I thought this was working in other places.
-
Bitcoin Cash - ADA enthusiast over 11 years"java.sql.Date is defined to be a timeless date". That statement has saved my life. Thank you!