Re: BUG #4878: function age() give a wrong interval

From: Frank Heikens <frankheikens(at)mac(dot)com>
To: Philippe Amelant <pamelant(at)companeo(dot)com>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #4878: function age() give a wrong interval
Date: 2009-06-25 11:02:39
Message-ID: 3D012E3A-F33A-4859-91B6-6BD5637FBAF9@mac.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The problem is the definition of a month. That can be 28, 29, 30 or 31
days. This is what the manual says about age():
age(timestamp, timestamp)
interval
Subtract arguments, producing a "symbolic" result that uses years and
months

So, it's just a symbolic age, not an exact age. The same occurs with
years, a year can be 365 days or 366 days. And there are also issues
with extra seconds and summer and wintertime.

time === trouble

Regards,
Frank

Op 25 jun 2009, om 12:50 heeft Philippe Amelant het volgende geschreven:

> Le jeudi 25 juin 2009 à 11:40 +0200, Frank Heikens a écrit :
>> select
>> age(
>> '2009-06-23 18:36:05.064066+02' ,
>> '2009-05-12 18:36:05.064066+02') ;
>>
>> Result: "1 mon 11 days"
>>
>> select justify_interval('1000 hours');
>>
>> Result: "1 mon 11 days 16:00:00"
>>
>> select
>> age(
>> '2009-06-23 18:36:05.064066+02' ,
>> '2009-05-12 18:36:05.064066+02')
>> > interval '1000 hours'
>> ;
>>
>> Result: false
>>
>> And that's correct, 1 month and 11 days is less than 1 month, 11 days
>> and 16 hours, it's not more. This is the actual comparison:
>>
>> select interval '1 mon 11 day' > interval '1 mon 11 day 16 hour';
>>
>> I don't see a problem nor a bug.
>
> this is wrong because first interval is 1008 hour and the second is
> 1000
> hours
>
> In the first case you have a month with 31 days and in the second you
> have a month with 30 days
>
> try this
>
> select
> age(current_timestamp , current_timestamp - '1008 hours'::interval)
>> interval '1000 hours'
>
> so 1000 > 1008
>
> regards
>
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Fujii Masao 2009-06-25 12:55:07 BUG #4879: bgwriter fails to fsync the file in recovery mode
Previous Message Philippe Amelant 2009-06-25 10:50:35 Re: BUG #4878: function age() give a wrong interval