Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 30/10/2019 18:57:35
- dev.isc84
- Membre
valeur renvoyée par now() différente selon d'ou vient l'appel
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
#2 30/10/2019 20:42:30
- rjuju
- Administrateur
Re : valeur renvoyée par now() différente selon d'ou vient l'appel
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
#3 31/10/2019 11:20:22
- dev.isc84
- Membre
Re : valeur renvoyée par now() différente selon d'ou vient l'appel
Merci pour le retour
Hors ligne