PostgreSQLのage()関数

age()の返値はinterval型。これが日単位なら問題ないのだが、月の定義はどうなっている?


**=# select age(timestamp '2006-02-28', timestamp '2006-02-01') ;
age
---------
27 days
(1 row)

**=> select age(timestamp '2006-03-01', timestamp '2006-02-01');
age
-------
1 mon
(1 row)

**=# select age(timestamp '2006-03-02', timestamp '2006-02-01') ;
age
-------------
1 mon 1 day
(1 row)

**=> select age(timestamp '2006-03-27', timestamp '2006-02-28');
age
---------
27 days
(1 row)

**=> select age(timestamp '2006-03-28', timestamp '2006-02-28');
age
-------
1 mon
(1 row)

sr=> select age(timestamp '2006-03-29', timestamp '2006-02-28');
age

                        • -

1 mon 1 day
(1 row)