X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 482D8D1B23C for ; Mon, 19 Jul 2004 06:02:36 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 34909-03 for ; Mon, 19 Jul 2004 09:02:33 +0000 (GMT) Received: from smtp.ualg.pt (smtp.ualg.pt [193.136.224.8]) by svr1.postgresql.org (Postfix) with ESMTP id 3A442D1B20D for ; Mon, 19 Jul 2004 06:02:25 -0300 (ADT) Received: from localhost (smtp.ualg.pt [127.0.0.1]) by smtp.ualg.pt (Postfix) with ESMTP id D2BAB4BE59; Mon, 19 Jul 2004 10:02:25 +0100 (WEST) Received: from smtp.ualg.pt ([127.0.0.1]) by localhost (smtp.ualg.pt [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 08634-08; Mon, 19 Jul 2004 10:02:21 +0100 (WEST) Received: from ualg.pt (corisco.uceh.ualg.pt [10.10.20.126]) by smtp.ualg.pt (Postfix) with ESMTP id AC1914BE6C; Mon, 19 Jul 2004 10:00:50 +0100 (WEST) Message-ID: <40FB8DC2.1080405@ualg.pt> Date: Mon, 19 Jul 2004 10:00:50 +0100 From: Luis Sousa User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5 X-Accept-Language: en-pt MIME-Version: 1.0 To: Tom Lane Cc: Theodore Petrosky , pgsql-sql@postgresql.org Subject: Re: Problem in age on a dates interval References: <20040716115215.29699.qmail@web41010.mail.yahoo.com> <20678.1089988447@sss.pgh.pa.us> In-Reply-To: <20678.1089988447@sss.pgh.pa.us> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.0 tagged_above=0.0 required=5.0 tests= X-Spam-Level: X-Archive-Number: 200407/116 X-Sequence-Number: 18368 I worked around this problem returning the difference between the two dates, using extract doy from both. Anyway, this will cause a bug on my code when changing the year. Any ideas? Best regards, Luis Sousa Tom Lane wrote: >Theodore Petrosky writes: > > >>wow.... at first I thought I had my head around a leap >>year problem so I advanced your query a year.... >> >> > >I think what's going on here is a difference of interpretation about >whether an "M months D days" interval means to add the months first >or the days first. For instance > >2005-02-18 plus 2 months = 2005-04-18, plus 24 days = 2005-05-12 > >2005-02-18 plus 24 days = 2005-03-14, plus 2 months = 2005-05-14 > >The timestamp-plus-interval operator is evidently doing addition the >first way, but it looks like age() is calculating the difference in a >way that implicitly corresponds to the second way. > >I have some vague recollection that this has come up before, but >I don't recall whether we concluded that age() needs to be changed >or not. In any case it's not risen to the top of anyone's to-do list, >because I see that age() still acts this way in CVS tip. > > regards, tom lane > > > >