Re: How Many Years have Passed?

From: "Ian Harding" <ianh(at)tpchd(dot)org>
To: <lockhart(at)fourpalms(dot)org>, <thomas(at)pgsql(dot)com>, <greg(at)turnstep(dot)com>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: How Many Years have Passed?
Date: 2001-12-21 17:19:51
Message-ID: sc22ff16.026@mail.tpchd.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Yikes! Who knew there was an age() function? Thanks!! Although it calls for timestamp arguments, it works with date. Are dates usually implicitly cast to timestamp in functions?

test=# \df age
List of functions
Result | Function | Arguments
----------+----------+----------------------------------------------------
interval | age | timestamp with time zone
interval | age | timestamp with time zone, timestamp with time zone
(2 rows)

Ian A. Harding
Programmer/Analyst II
Tacoma-Pierce County Health Department
(253) 798-3549
mailto: iharding(at)tpchd(dot)org

>>> lockhart(at)fourpalms(dot)org 12/20/01 05:34PM >>>
> > I have checked the FAQ and other sources and learned that the difference
> > between two dates is the integer number of days. I want to know how many
> > years are between those two dates.

thomas=# select age(date 'today', date '1980-01-01'),
thomas-# extract(year from age(date 'today', date '1980-01-01'));
age | date_part
--------------------------+-----------
21 years 11 mons 20 days | 21

Is this close to what you want? The nice thing about the age() function
is that it preserves the qualitative units of month and year.

- Thomas

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)

Browse pgsql-general by date

  From Date Subject
Next Message Antonio Fiol Bonnín 2001-12-21 17:41:41 Re: Database tuning
Previous Message K Old 2001-12-21 17:03:43 Database tuning