Luis, wow.... at first I thought I had my head around a leap year problem so I advanced your query a year....
testbed=# SELECT age('2005-05-14 16:00'::timestamp,'2005-02-18 16:00'::timestamp); age ---------------- 2 mons 24 days (1 row) testbed =# SELECT '2005-02-18 16:00'::timestamp +'2 mons 24 days'::interval; ?column? --------------------- 2005-05-12 16:00:00 (1 row) I just thought I would let you know it can get worse..... :) I don't know how daylight savings time is playing this problem... but I didn't expect the problem to grow like that. Ted --- Luis Sousa <[EMAIL PROTECTED]> wrote: > Hi all, > > I'm using PostgreSQL 7.3.3 on i386-pc-linux-gnu, > compiled by GCC gcc > (GCC) 3.3 (Debian), and I don't understand the > results of the following > queries: > > > SELECT age('2004-05-14 16:00'::timestamp,'2004-02-18 > 16:00'::timestamp); > age > ---------------- > 2 mons 25 days > > SELECT '2004-02-18 16:00'::timestamp+'2 mons 25 > days'::interval; > ?column? > --------------------- > 2004-05-13 16:00:00 > > In this case, the age from 2004-05-14 16:00 to > 2004-02-18 16:00 is 2 > mons 25 days, but if I add the age to the initial > date, it returns one > day less!? > > SELECT age('2004-05-26 16:00'::timestamp,'2004-02-18 > 16:00'::timestamp); > age > --------------- > 3 mons 8 days > > SELECT '2004-02-18 16:00'::timestamp+'3 mons 8 > days'::interval; > ?column? > --------------------- > 2004-05-26 16:00:00 > > Here, the age between 2004-05-26 16:00 and > 2004-02-18 16:00 is 3 mons 8 > days, and this interval added to the initial date > gives the correct result!! > __________________________________ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])