[Pgsql-ayuda] operaciones con fechas
Alvaro Herrera
alvherre@dcc.uchile.cl
Fri, 14 Mar 2003 17:37:46 -0400
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)