Re: Question de dates

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 07:20:44
Message-ID: 487C4FCC.2040900@bpf.st
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Jean-Paul Argudo wrote:
> Bonjour Stéphane,
>
>> La gestion des dates est une source de cas d'école. En regardant le
>> résultat d'une requête j'ai été quelque peu surpris par le résultat d'un
>> tri sur intervalle de temps. (PG 8.3.3)
>
> Je n'arrive pas à reproduire votre problème:

En effet, pour cela il faut utiliser la date d'hier sans quoi l'ordre
est bon ce matin ?!

=# select now();
now
-------------------------------
2008-07-15 09:09:55.420534+02
(1 row)

=# SELECT id, utc, age( '2008-07-14', utc ) AS a FROM test ORDER BY a ;
id | utc | a
----+---------------------+------------------------
1 | 2008-05-16 08:06:04 | 1 mon 28 days 15:53:56
3 | 2008-05-13 20:06:16 | 2 mons 03:53:44
2 | 2008-05-14 20:05:26 | 1 mon 30 days 03:54:34
(3 rows)

> $ psql -V
> psql (PostgreSQL) 8.3.3
> contient une gestion avancée de la ligne de commande

$ psql -V
psql (PostgreSQL) 8.3.3
contains support for command-line editing

> jpargudo=# show server_version;
> server_version
> ----------------
> 8.3.3
> (1 ligne)

=# SHOW server_version ;
server_version
----------------
8.3.3
(1 row)

(...)

> Pouvez-vous vérifier:
>
> * la version de psql (psql -V) en plus de votre version serveur, et nous
> préciser votre OS (windows? linux? distro??..)

OS: Ubuntu 8.04

>
> * la méthode d'installation de votre PostgreSQL

apt-get install ...

> * les valeurs lc_* comme suit:
>
> jpargudo=# select name, setting from pg_settings where name ~ '^lc';
> name | setting
> -------------+------------
> lc_collate | fr_FR(at)euro
> lc_ctype | fr_FR(at)euro
> lc_messages | fr_FR(at)euro
> lc_monetary | fr_FR(at)euro
> lc_numeric | fr_FR(at)euro
> lc_time | fr_FR(at)euro
> (6 lignes)

=# select name, setting from pg_settings where name ~ '^lc';
name | setting
-------------+-------------
lc_collate | en_US.UTF-8
lc_ctype | en_US.UTF-8
lc_messages | en_US.UTF-8
lc_monetary | en_US.UTF-8
lc_numeric | en_US.UTF-8
lc_time | en_US.UTF-8
(6 rows)

> * si vous ne voyez toujours rien de particulier, pouvez vous ajouter
> dans vos deux select (order by utc et order by a), la colonne suivante:
>
> select [...] extract(epoch from age( utc )) AS epoch
>
> Et re-poster le résultat?

tri sur _a_:

edonkey=# SELECT id, utc, age( '2008-07-14', utc ) AS a, extract(epoch
from age( utc )) AS epoch FROM test ORDER BY a ;
id | utc | a | epoch
----+---------------------+------------------------+---------
1 | 2008-05-16 08:06:04 | 1 mon 28 days 15:53:56 | 5154836
3 | 2008-05-13 20:06:16 | 2 mons 03:53:44 | 5284424
2 | 2008-05-14 20:05:26 | 1 mon 30 days 03:54:34 | 5198074
(3 rows)

Je n'osais penser à BUG en postant, mais ça y ressemble de plus en plus...

tri sur _utc_:

=# SELECT id, utc, age( '2008-07-14', utc ) AS a, extract(epoch from
age( utc )) AS epoch FROM test ORDER BY utc ;
id | utc | a | epoch
----+---------------------+------------------------+---------
3 | 2008-05-13 20:06:16 | 2 mons 03:53:44 | 5284424
2 | 2008-05-14 20:05:26 | 1 mon 30 days 03:54:34 | 5198074
1 | 2008-05-16 08:06:04 | 1 mon 28 days 15:53:56 | 5154836
(3 rows)

Merci,
Stéphane.

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Jean-Paul Argudo 2008-07-15 08:45:14 Re: Question de dates
Previous Message Jean-Paul Argudo 2008-07-15 06:53:27 Re: Question de dates