La función AGE en PostgreSQL es una herramienta muy útil para calcular la diferencia entre dos fechas, devolviendo el resultado en forma de años, meses y días. Esta función acepta como argumentos dos valores de tipo TIMESTAMP
y realiza la operación restando el segundo argumento del primero. El resultado es un intervalo que muestra claramente la diferencia entre las fechas, desglosado en unidades temporales.
Como parte de las funciones de fecha en PostgreSQL, AGE es ideal para cálculos relacionados con la antigüedad, duraciones o cualquier análisis temporal que requiera un formato detallado y legible. Su flexibilidad la convierte en una opción imprescindible para consultas que manejan intervalos complejos o que necesitan desglosar la diferencia entre fechas en partes específicas.
En este artículo, primero te mostraré la sintaxis básica de AGE, y luego analizaremos ejemplos prácticos que ilustran cómo aprovechar esta función para resolver problemas comunes en el manejo de datos temporales.
Para más información, puedes consultar la documentación oficial de la función AGE en PostgreSQL.
Sintaxis
La sintaxis para utilizar la función AGE en PostgreSQL es la siguiente:
AGE(timestamp,timestamp);
Ejemplo
SELECT AGE('2021-12-11','1986-09-26');

Si quisieras que el primer argumento fuese la fecha actual, cambiaría un poco la sintaxis:
SELECT AGE(timestamp '1986-09-26') AGE;

2 comentarios en “Función AGE en PostgreSQL”
Escribir un comentario Cancelar la respuesta
Lo siento, debes estar conectado para publicar un comentario.
y seria posible crear un pl que cambien la impresion de Age «35 years 2 mons 15 days» a » 35 años 2 meses 15 dias»
Tal vez no sea la mejor solución, pero puede hacerse de la siguiente manera:
create or replace function public.interval_spanish(interval)
returns character varying
language ‘sql’
as $body$
select replace(
replace(
replace(
replace(
$1::varchar,
‘year’,’año’),
‘mons’,’meses’),
‘mon’,’mes’),
‘day’,’día’);
$body$;
select interval_spanish(age(‘2020-01-01’::date))