Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Dans postgresql.conf, il y a une ligne
timezone = 'UTC'
J'aimerais avoir des explications:
* est-ce que ca veut dire que le serveur travaille en utc et qu'il faut dire à l'OS dans quel timezone il se trouve?
* est-ce qu'il y a un autre endroit où définir l'heure à afficher (tenant compte du timezone) à afficher lorsqu'on fait un "select now()"
* est-il possible de laisser cette ligne, et de définir dans chaque database du cluster, un timezone par défaut (qui pourrait être différent par database)? Nous avons un environnement de test et certaines bases de données seront expédiées à plusieurs endroits dans le monde, donc on doit pouvoir le gérer.
* est-ce que c'est au client de définir son timezone lorsqu'il se connecte (quand on fait un select now() on a l'heure du serveur, quel que soit le timezone du client)?
Y a-t'il un document quelque part qui explique les possibilités, j'ai cherché un peu mais n'ai rien trouvé de vraiment très clair?
Merci de votre aide.
Hors ligne
Bonjour,
Ce paramètre indique la timezone à utiliser par défaut à l'affichage ou pour interpréter une date (https://www.postgresql.org/docs/current … C-TIMEZONE). Par exemple :
# show timezone;
TimeZone
--------------
Europe/Paris
(1 row)
# select now();
now
-------------------------------
2019-10-10 06:55:30.249279+02
(1 row)
# set timezone = UTC;
SET
# select now();
now
-------------------------------
2019-10-10 04:55:39.899867+00
(1 row)
Vous pouvez changer la valeur par défaut d'une base avec un ALTER DATABASE.
Julien.
https://rjuju.github.io/
Hors ligne
Et donc je suppose qu'il n'est pas possible, si j'ai plusieurs databases, de spécifier un timezone par database?
Hors ligne
Vous pouvez changer la valeur par défaut d'une base avec un ALTER DATABASE.
Julien.
https://rjuju.github.io/
Hors ligne
Je ne suis pas sur de comprendre. A partir du serveur:
J'ai une db timezone europe / brussels, et un champs createdon timestamp without timezone
select requestuuid, createdon, createdon AT TIME ZONE 'UTC'
from xxx;
requestuuid | createdon | timezone
--------------------------------------+-------------------------+----------------------------
fa8f06d3-906a-4db9-ae4c-b7f342e4b3da | 2019-05-20 16:25:56.374 | 2019-05-20 18:25:56.374+02
Je change le timezone à UTC dans postgresql.conf et relance postgres
select requestuuid, createdon, createdon AT TIME ZONE 'UTC'
from xxx;
requestuuid | createdon | timezone
--------------------------------------+-------------------------+----------------------------
fa8f06d3-906a-4db9-ae4c-b7f342e4b3da | 2019-05-20 16:25:56.374 | 2019-05-20 16:25:56.374+00
Je m'attendais à ce que createdon soit modifié mais pas du tout., et "createdon at time utc" est lui modifié à l'affichage pour tenir compte du timezone de postgresql.conf.
Donc si je comprends bien, quand je fais un select createdon, il m'envoie la valeur de createdon UTC peu importe le contenu de postgresql.conf?
Hors ligne
bonjour,
car without timezone correspond à UTC ?
Cordialement,
Sébastien.
Hors ligne
Donc quand on fait un select ts il le renvoie toujours au format UTC peu importe le contenu du postgresql.conf.
Pour l'afficher à un ts particulier il faut dire "AT TIME ZONE 'UTC'" et à ce moment il affiche l'heure locale selon postgresql.conf, et l'offset par rapport à utc. Perso je ne trouve pas ça très logique, j'aurais fait l'inverse.
Hors ligne
Non, rjuju l'a d'ailleurs montré plus haut. Il suffit de configurer le paramètre timezone.
Guillaume.
Hors ligne
rjuju a fait un select now(). Pas un select sur un champs "timestamp without timezone" d'une table existante.
Hors ligne
Effectivement. Cela dit, je ne suis par sur de comprendre ce que vous attendez d'un changement de timezone si vous utilisez une date qui n'a pas de timezone?
Julien.
https://rjuju.github.io/
Hors ligne
Nous avons une db où nous avons positionné (à la création) timezone Brussels car l'installation software a été faite à Bruxelles, mais ce serveur doit tourner en Afrique.
Ce serveur a donc été envoyé en Afrique de l'Ouest.
Jboss/jpa a créé des champs "timestamp without timezone".
Les applications communiquent l'heure en UTC.
La question est "quel est l'impact si on change le timezone du serveur de Brussels->UTC".
Je pensais que select ts afficherait une valeur différente, mais ce n'est pas le cas.
Hors ligne
normalement la définition d'une colonne est prioritaire à la définition d'une database.
Donc votre colonne en timestamp without timezone ne sera pas impactée par le timezone de la base elle même.
Cordialement,
Sébastien.
Hors ligne
Pages : 1