> -----Mensaje original-----
> De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-
> ow...@postgresql.org] En nombre de Miguel Angel
> Enviado el: Miércoles, 20 de Mayo de 2009 10:17
> Para: Lista Postgres
> Asunto: [pgsql-es-ayuda] Diferencia de tiempo
> 
> 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

No se si es el formato que realmente necesitas, pero con la función
pg_catalog.age() podrías jugar y lograr algo interesante ....
Aquí va un ejemplo:

SELECT REPLACE(

         REPLACE( 

           REPLACE( 

             REPLACE( 

                 UPPER(

                   AGE(

                       ('1986-08-31')::TIMESTAMP 

                      )::VARCHAR)

             , 'YEAR', 'AÑO')

           , 'MONS', 'MESES')

         , 'MON', 'MES')

       , 'DAY', 'DIA')

Saludos.



--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Responder a