Re: Does anyone use TO_CHAR(INTERVAL)?

From: Peter Childs <blue(dot)dragon(at)blueyonder(dot)co(dot)uk>
To:
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Does anyone use TO_CHAR(INTERVAL)?
Date: 2003-03-26 09:50:24
Message-ID: Pine.LNX.4.44.0303260929090.5091-100000@RedDragon.Childs
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Wed, 26 Mar 2003, Tomasz Myrta wrote:

>
> Thanks for noticing this, these results are really strange for me.
> I should remember NOT to use months when working with intervals. It
> looks like intervals contain 2 totally independent values inside.
>
> I have one more question to this thread - Does anyone use intervals
> month value?

Since all months are not equal in length how do else do you come
up with an interval that is 1 month since us humans like to use months.
As you note Postgres trys to ovide using Months if at all possible
because 1 month <> 1 month hense.

select (cast('2-2-2003' as date) + cast('1 month' as interval)) -
cast('2-2-2003' as date);
?column?
----------
28 days
(1 row)

but if all you say is 1 month from now how many days you month you mean
will mean a different number of days. Oh one more good one is....

select cast('1 year' as interval) - cast('365 days' as interval);
?column?
------------------
1 year -365 days
(1 row)

It would seam that a year is 12 months but not 365 days which
while this is true (due to leap years) most people would never think like
that. Its seams that postgres will not tell you how many days there are in
a year but this seams even more stupid

select cast('1 month' as interval)/2 * 2;
?column?
----------
360 days
(1 row)

oh and just when you thought somthing was really straght forward you
get...

select cast('1 year' as interval)/24 * 24;
?column?
----------
360 days
(1 row)

This reminds me of a calculator that comes with MS Windows....
How ever the implementation in postgres is the best I've sean so
long as you don't do anything stupid!

Peter Childs

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Christoph Haller 2003-03-26 09:55:43 Re: column label
Previous Message Christoph Haller 2003-03-26 09:16:32 Re: How to show timestamp with milliseconds(3 digits) in Select