Milorad Poluga написа: > On Saturday 18 February 2006 15:24, Milen A. Radev wrote: >> Milorad Poluga написа: >>> Hi all, >>> >>> Is there something incorrect in the above query ? >>> SELECT '10 years 1 mons 1 days'::interval - '9 years 10 mons 15 >>> days'::interval >>> >>> ?column? >>> --------------- >>> 3 mons -14 days >>> >>> Why not '2 mons 16 days' ? >>> >>> /version = PostgreSQL 8.0.4 on i686-pc-linux-gnu, compiled by GCC gcc >>> (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) / >> >> How many days are there in a month? >> > > I beleive that a month is calculated on the 30-days base.
Are you sure? Where? > > One way to solve this problem is to use a neutal date element and make > timestamps : > > SELECT age(('1990-01-01'::date + '10 years 1 mons 1 > days'::interval)::timestamp , > ('1990-01-01'::date + '9 years 10 mons 15 days'::interval)::timestamp) > > age > -------------- > 2 mons 16 days > Please read the last paragraph in section 8.5.1.4 of the manual (http://www.postgresql.org/docs/8.1/static/datatype-datetime.html#AEN4775) . It mentions the functions named "justify_days" and "justify_hours" that could do what you need. -- Milen A. Radev ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org