From: | Stéphane Bunel <stephane+pgfr(at)bpf(dot)st> |
---|---|
To: | Jean-Paul Argudo <jean-paul(at)postgresqlfr(dot)org> |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: Question de dates |
Date: | 2008-07-15 09:16:23 |
Message-ID: | 487C6AE7.9030709@bpf.st |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Jean-Paul Argudo wrote:
> Ok!
>
>
> J'ai effectivement reproduit ton "bug" avec le 14/07/2008 comme date de
> référence.
>
> Suite à ça, 'RhodiumToad' sur l'IRC (irc.freenode.net, canal
> #postgresql), m'a donné l'explication de ce comportement "curieux".
>
> En fait, il ne s'agit pas du tout d'un bug, mais d'un comportement
> induit par la fonction age().
It's not a Bug, it's a Feature! Visuellement c'est plutôt troublant ;-)
> age() renvoie une valeur "symbolique" exprimant la différence temporelle
> entre deux dates.
>
> Cependant, la sortie de cette fonction perd toute notion de la valeur
> précise de la longueur des intervalles une fois qu'elles sont exprimées
> en unités absolues (mois, jours, heures..).
>
> Ainsi, entre '1 mon 30 days 03:54' et '2 mons 03:53', c'est le 1er qui
> est plus grand, d'une seule minute.
>
> 1 mois et 30 jours et 2 mois, c'est en effet identique, avec les unités
> considérées.
On peut alors considérer que 1 mois et 30 jours 03:54 aurait du être
afficher 2 mois 03:54 pour être plus cohérent.
> Avec age(), il n'y a plus de comparaison possible qui conserverait
> l'ordre original...
>
> Au final, si tu veux que ton ORDER BY soit correct, il ne faut pas
> utiliser age() mais la différence avec CURRENT_TIMESTAMP, comme le
> montre cet exemple:
J'utilises age( now(), timestamp ) pour corriger la curiosité, ce qui
revient au même. Dommage que la version à un argument de age() ne fasse
pas de même. J'imagine qu'il n'est pas possible de changer cela pour
raison de retro-compatibilité, donc il faut le savoir.
> http://pgsql.privatepaste.com/0faaP3uV6c
>
> (timestamp-timestamp) conserve en effet tous les détails.
>
> J'espère avoir été clair...
Limpide.
> Merci en tout cas pour avoir soulevé ce point :)
Merci pour la recherche d'info. Cette curiosité est à connaître.
Stéphane.
From | Date | Subject | |
---|---|---|---|
Next Message | William Dode | 2008-07-15 10:19:31 | Re: table temporaire ou raz |
Previous Message | Jean-Paul Argudo | 2008-07-15 08:45:14 | Re: Question de dates |