D'économie d'horodateurs dans Postgres basé sur Java dates
J'ai une base de données Postgres avec une table qui contient un timestamp (timeOfProcessing TIMESTAMP
).
J'ai un Java valeur de type datetime (java.util.Date dateTime
) et que vous souhaitez stocker sa valeur dans ce champ timestamp (sans zone de temps).
Quand je le fais à l'aide de la requête
"INSERT INTO mytable(..., timeOfCreation, ...) VALUES(..., to_timestamp(" + Long.toString(dateTime.getTime()) + "),...)"
puis lire la valeur enregistrée (SELECT timeOfCreation FROM mytable
), elles sont différentes (resultSet.getTimestamp(...).getTime()
n'est pas égal à dateTime.getTime()
).
Comment dois-je modifier l'instruction insert dans l'ordre de la date-heure pour être stocké correctement?
OriginalL'auteur DP_ | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
Lors de l'insertion, au lieu d'utiliser
(dateTime).getTime()
, utiliser un timestamp SQL de l'objet:new java.sql.Timestamp((dateTime).getTime())
tout simplement ne pas utiliser un ORM. Embrasser SQL et de se tenir à l'écart de l'ORM monstruosités.
OriginalL'auteur Kalaji