11

I have a Postgres database with a table that contains a timestamp (timeOfProcessing TIMESTAMP).

I have a Java datetime value (java.util.Date dateTime) and want to store its value in that timestamp field (without time zone).

When I do it using the query

"INSERT INTO mytable(..., timeOfCreation, ...) VALUES(..., to_timestamp(" + Long.toString(dateTime.getTime()) + "),...)"

and then read the saved value (SELECT timeOfCreation FROM mytable), they are different (resultSet.getTimestamp(...).getTime() is not equal to dateTime.getTime()).

How do I need to change the insert statement in order for the datetime to be stored correctly?

Glory to Russia
  • 17,289
  • 56
  • 182
  • 325

1 Answers1

21

When inserting, instead of using (dateTime).getTime(), use an SQL timestamp object: new java.sql.Timestamp((dateTime).getTime())

Kalaji
  • 756
  • 7
  • 10