2013-08-08 11 views
9

Ho un database Postgres con una tabella che contiene un timestamp (timeOfProcessing TIMESTAMP).Salvataggio dei timestamp in Postgres in base alle date Java

Ho un valore datetime Java (java.util.Date dateTime) e voglio memorizzare il suo valore in quel campo data/ora (senza fuso orario).

quando lo faccio utilizzando la query

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

e quindi leggere il valore salvato (SELECT timeOfCreation FROM mytable), sono diversi (resultSet.getTimestamp(...).getTime() non è uguale a dateTime.getTime()).

In che modo è necessario modificare l'istruzione di inserimento in modo che il datetime sia memorizzato correttamente?

risposta

20

Quando si inserisce, invece di utilizzare (dateTime).getTime(), utilizzare un oggetto SQL timestamp: new java.sql.Timestamp((dateTime).getTime())

+1

come vorrei che il lavoro con ORM? – Sarief

+0

@Sarief semplicemente non usare un ORM. Abbraccia SQL e allontana dalle mostruosità ORM. –

Problemi correlati