Vous n'êtes pas identifié(e).
Bonjour,
je viens de m'appercevoir d'une chose que je n'arrive pas à expliquer:
Je crée une table :
CREATE TABLE public.temp_test_zone(
col1 timestamp without time zone DEFAULT now(),
col2 timestamp with time zone DEFAULT now(),
libelle text
);
Il est 17h00 heure française.
Depuis une ligne de commande via psql, je fais un insert into temp_test_zone(libelle) values ('test1');
J'ai comme résultat col2 : 16:00:00.000000+00 et col1 16:00:00.000000
(même résultat depuis un pgadmin sur un poste client)
Je fais cette même requête depuis un connecteur java JDBC:
J'ai comme résultat col2 : 16:00:00.000000+00 et col1 17:00:00.000000
Auriez vous une explication au fait que depuis un psql la valeur without time zone soit différente de celle obtenue depuis un connecteur JDBC?
Je précise que le linux sur lequel tourne postgres est à l'heure française aussi.
Merci pour vos éclaircissements!
Hors ligne
J'imagine que le client ou driver JDBC modifie la time zone côté client, ou qu'un réglage de time zone spécifique existe pour les informations de connexion côté jdbc ou quand vous testez avec psql:
# select now()::timestamp;
now
----------------------------
2019-10-30 19:41:01.146024
(1 row)
# set timezone to 'GMT';
SET
# select now()::timestamp;
now
----------------------------
2019-10-30 18:41:10.433325
Cela étant dit, stocker des colonnes sans la time zone est le meilleur moyen pour finir par le regretter amèrement à un moment ou à un autre.
Julien.
https://rjuju.github.io/
Hors ligne
Merci pour le retour
Hors ligne