Theodore Petrosky <tedpet5@yahoo.com> 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