pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Milen A. Radev <milen@radev.net>
To: pgsql-sql@postgresql.org
Subject: Re: Interval subtracting
Date: Sat, 18 Feb 2006 16:45:34 +0200
Message-ID: <43F7330E.1060907@radev.net> (raw)
In-Reply-To: <200602181536.20605.milorad.poluga@cores.co.yu>
References: <200602181444.06009.milorad.poluga@cores.co.yu>
	<43F72E27.2060408@radev.net>
	<200602181536.20605.milorad.poluga@cores.co.yu>

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




view thread (62+ messages)  latest in thread

Message-ID: <43F7330E.1060907@radev.net>
Permalink:  ../43F7330E.1060907@radev.net/
Also on:    postgresql.org/message-id/43F7330E.1060907@radev.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: milen@radev.net
  Subject: Re: Interval subtracting
  In-Reply-To: <43F7330E.1060907@radev.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox