From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Fernando Papa <fpapa(at)claxson(dot)com> |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] operaciones con fechas |
Date: | 2003-03-14 21:37:46 |
Message-ID: | 20030314213746.GD3468@dcc.uchile.cl |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Fri, Mar 14, 2003 at 04:39:43PM -0300, Fernando Papa wrote:
> En oracle, si yo resto 2 fechas me devuelve un numero, su parte entera
> es la cantidad de dias que hay entre las dos fechas. Pero en
> postgresql, si resto 2 fechas me devuelve un tipo de dato "interval"
> que no se como manejarlo, o mejor dicho, como convertirlo a numerico.
> Concretamente, yo tengo una fecha de nacimiento y necesito saber la
> edad de la persona, con lo cual le resto el now() a la fecha de
> nacimiento... si estuviera en oracle, la diferencia la divido por 365
> y tengo los años... pero en postgres me un tipo de dato interval... no
> se como hacerlo.
Usa extract():
alvh=> select extract(days from now() - '1976-10-28') / 365.25;
?column?
------------------
26.3737166324435
(1 row)
o age():
alvh=> select age('1976-10-28'::date);
age
-------------------------------
26 years 4 mons 17 days 01:00
(1 row)
O combinalos:
alvh=> select extract(years from age('1976-10-28'::date));
date_part
-----------
26
(1 row)
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La realidad se compone de muchos sueños, todos ellos diferentes,
pero en cierto aspecto, parecidos..." (Yo, hablando de sueños eróticos)
From | Date | Subject | |
---|---|---|---|
Next Message | Manuel Infante Ruiz | 2003-03-17 07:57:54 | [Pgsql-ayuda] Cygwin vs PostgreSQL |
Previous Message | Fernando Papa | 2003-03-14 19:39:43 | [Pgsql-ayuda] operaciones con fechas |