| From: | Shane Ambler <pgsql(at)Sheeky(dot)Biz> | 
|---|---|
| To: | Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> | 
| Cc: | Achilleas Mantzios <achill(at)matrix(dot)gatewaynet(dot)com>, pgsql-admin(at)postgresql(dot)org, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Julius Tuskenis <julius(at)nsoft(dot)lt> | 
| Subject: | Re: how to get a number of seconds in some interval ? | 
| Date: | 2008-05-13 08:42:41 | 
| Message-ID: | 48295481.50800@Sheeky.Biz | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-admin | 
Scott Marlowe wrote:
> True.  But that's only because it doesn't have a date to work against.
>  If you run:
> 
> select '2007-02-01 12:00:00'::timestamp + '1 month'::interval;
> you get: 2007-03-01 12:00:00
> 
> If you run:
> select '2007-03-01 12:00:00'::timestamp + '1 month'::interval;
> you get:  2007-04-01 12:00:00
> 
> Then, if we run:
>  select ('2007-03-01 12:00:00'::timestamp + '1 month'::interval) -
> '2007-03-01 12:00:00'::timestamp;
> we get: 31 days
> 
> But if we run:
>  select ('2007-02-01 12:00:00'::timestamp + '1 month'::interval) -
> '2007-02-01 12:00:00'::timestamp;
> we get: 28 days
> 
> So, I'm not sure how many days a month has.
Try looking at a calendar.;-)
You will find that these are the exact days between the two dates. Feb 
has 28 days, so 1st of feb plus 1 month puts you at 1st of march
march has 31 days so 1st of march plus 1 month puts you at 1st of april.
Try a leap year -
select ('2008-02-01 12:00:00'::timestamp + '1 month'::interval) - 
'2008-02-01 12:00:00'::timestamp;
  ?column?
----------
  29 days
(1 row)
--
Shane Ambler
pgSQL (at) Sheeky (dot) Biz
Get Sheeky @ http://Sheeky.Biz
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Scott Marlowe | 2008-05-13 08:48:32 | Re: how to get a number of seconds in some interval ? | 
| Previous Message | Achilleas Mantzios | 2008-05-13 08:41:00 | Re: how to get a number of seconds in some interval ? |