Re: Interval subtracting
От | Milen A. Radev |
---|---|
Тема | Re: Interval subtracting |
Дата | |
Msg-id | 43F7330E.1060907@radev.net обсуждение исходный текст |
Ответ на | Re: Interval subtracting (Milorad Poluga <milorad.poluga@cores.co.yu>) |
Ответы |
Re: Interval subtracting
|
Список | pgsql-sql |
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
В списке pgsql-sql по дате отправления: