> -----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