Or you could use date_trunc() in the same way as date_part() if you want
an interval instead..
SELECT date_trunc('year',age(birth)),* FROM persons LIMIT 1;
On Fri, 18 May 2001, tjk@tksoft.com wrote:
> You are probably looking for date_part().
>
> E.g.
>
> SELECT date_part('year',age(birth)),* FROM persons LIMIT 1;
>
>
> Troy
>
>
>
> >
> > I have a table containing the birthdays of various persons. The target
> > is to compute the age of a persons.
> >
> > persons=# SELECT age(birth), * FROM persons LIMIT 1;
> > age | id | name | birth | gender |
> > income
> > -------------------------------+----+--------+------------+--------+--------
> >
> > 31 years 4 mons 16 days 23:00 | 1 | Albert | 1970-01-01 | m |
> > 35000
> > (1 row)
> >
> > When I use age() I don't get full years. Is there an easy way to round
> > ::reltime off or up without writing a function. Is there any possibility
> > to use plain SQL only?
> >
> > Hans
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> >
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>