Hello everyone:

I'm a PostgreSQL newbie, working now with dates, times, timestamps and intervals.

I have three questions about the above:

FIRST:
--------

I have observed that, for PostgreSQL, one year is actually 360 days:

SELECT '1 year'::timestamp = '360 days'::timestamp;

?column?
-------------
   t


Glubs! I believed that 1 year is 365 days, or 366 if leap. Is it normal?


SECOND: -----------

When I want to check how many time is between two dates, I have two options (which shows two different results):

SELECT '30-09-04'::timestamp - '30-09-03'::timestamp, age('30-09-04'::timestamp, '30-09-03'::timestamp);

  ?column?  |    age
-------------------------------
@ 366 days  |  @ 1 year


The results are different. If we compare the two results:

SELECT ('30-09-04'::timestamp - '30-09-03'::timestamp) = age('30-09-04'::timestamp, '30-09-03'::timestamp);


?column? -------------- f


Obviously, it returns False, because I told in the first question, 1 year is 360 days for PostgreSQL.


The question is: is it normal? Which of the two methods is the correct? To substract timestamps? Or to use the age function?


THIRD: --------

As I told in the second question, when I do:

SELECT '30-09-04'::timestamp - '30-09-03'::timestamp;

the result is:

?column?
--------------
@ 366 days

The question is: is there any way to "normalize" the result, such that the result was:

@ 1 year 1 day

?

I think it's better (and more correct) "@ 1 year 1 day" rather than "@ 366 days". Is there any way to achieve that?

Thanks to all.

Ricardo.

_________________________________________________________________
Horóscopo, tarot, numerología... Escucha lo que te dicen los astros. http://astrocentro.msn.es/



---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to