El 20 de mayo de 2009 8:16, Miguel Angel <mvillago...@sayab.com.mx>escribió:

> Buenos días.
>
> Quisiera preguntar si hay forma de saber la diferencia de tiempo que hay
> entre dos fechas expresada en meses como por ejemplo:
>
> Si tengo la fecha de inicio '2008-12-15' y la fecha '2009-01-01'
> quisiera poder obtener el resultado de 1 mes de diferencia; no es un
> resultado correcto en diferencia de días pero si en meses y eso es lo
> que necesito.
>
> Hay forma de poder obtener algo así en Postgres o es necesario cree una
> función o lógica para ello?
>
> Soñando algo como:
>  Fecha_final  | Fecha_inicial | diferencia_meses
> '2010-01-01'  | '2008-12-31'  | 13
> '2009-02-15'  | '2008-12-31'  |  2
> '2011-05-30'  | '2008-02-20'  | 39
>
>
Podrias hacer uso de la función age, pero antes tienes que convertir tus
fechas para ponerlas al dia de inicio del mes, por ejemplo:

postg...@test[localhost]=# select age(date '2009-01-01', date '2008-12-01');
  age
-------
 1 mon
(1 fila)

postg...@test[localhost]=# select age(date '2010-01-01', date '2008-12-01');
     age
--------------
 1 year 1 mon
(1 fila)

postg...@test[localhost]=# select age(date '2009-02-01', date '2008-12-01');
  age
--------
 2 mons
(1 fila)

postg...@test[localhost]=# select age(date '2011-05-01', date '2008-02-01');
      age
----------------
 3 years 3 mons
(1 fila)

Solo faltaria hacer la converisión de años a meses.

Reply via email to