Re: timestamp with timezone or not ?

From: Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
To: dazz <list(at)ikotame(dot)net>
Cc: PostgreSQL mailing lists <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: timestamp with timezone or not ?
Date: 2015-03-30 21:35:16
Message-ID: m2zj6uuq23.fsf@2ndQuadrant.fr
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

dazz <list(at)ikotame(dot)net> writes:
> j’ai mis un champ timestamp avec timezone un peu a l’arrache sans
> réfléchir,

Le seul cas où l'on ne se sert pas de la TZ c'est pour prendre des
rendez-vous dans le calendrier.

Si la semaine dernière tu as pris RDV à 10h demain matin, je suppose que
tu ne veux pas arriver à 11h sous prétexte que nous avons changé d'heure
entre temps ?

> pour avoir la création de la fiche, quelque soit la localisation de
> l’utlisateur. mais je me dit que c’était peut-être une mauvaise idée,
> parcque c’est difficile a comparer ? en plus ca doit être galère a traiter
> comme données dans les languages vu que c’est formatter bizare. je me
> demande si l’aurais pas mieux voulu enregistrer dans time zone dans un champ
> différent.
> voir d’enregistrement la valeur absolu en gmt 0, et d’additioner la timezone correspondante… ?

C'est une bonne idée. C'est pour ça que c'est ce que fait PostgreSQL
pour toi automatiquement en interne. Les TZ sont utilisées pour la
lecture et l'affichage des dates uniquement, et réglables dynamiquement
par l'application via le paramètre client_timezone.

http://www.postgresql.org/docs/9.3/static/datatype-datetime.html#DATATYPE-TIMEZONES

All timezone-aware dates and times are stored internally in UTC. They
are converted to local time in the zone specified by the TimeZone
configuration parameter before being displayed to the client.

pgloader# begin;
BEGIN
pgloader*# set local timezone to 'America/New_York';
SET
pgloader*# select now();
now
------------------------------
2015-03-30 17:34:01.97094-04
(1 row)

pgloader*# rollback;
ROLLBACK

pgloader# select now();
now
------------------------------
2015-03-30 23:34:36.11449+02
(1 row)

Assez pratique.
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Guillaume Lelarge 2015-03-30 21:39:31 Re: check-postgres et vacuum
Previous Message Dimitri Fontaine 2015-03-30 21:29:00 Re: check-postgres et vacuum