La función DATE_ADD en PostgreSQL es una herramienta clave dentro del conjunto de funciones de fecha en PostgreSQL, diseñada para simplificar la suma de intervalos a campos de tipo fecha y hora con zona horaria. Esta función te permite agregar días, horas, minutos u otras unidades de tiempo a una fecha existente, facilitando cálculos temporales en tus consultas de manera eficiente y precisa.
En términos prácticos, DATE_ADD es ideal para escenarios como programar eventos, calcular fechas límite o generar intervalos de tiempo dinámicos en tus aplicaciones. Su flexibilidad la hace indispensable para trabajar con datos temporales en sistemas complejos que requieren manejar diferentes zonas horarias o intervalos personalizados.
En este artículo, primero exploraremos la sintaxis básica de DATE_ADD, y luego revisaremos ejemplos prácticos para que puedas aplicarla correctamente en tus consultas y optimizar tus operaciones con datos temporales.
Para más información, puedes consultar la documentación oficial de la función DATE_ADD en PostgreSQL.
Sintaxis
La sintaxis para utilizar la función DATE_ADD en PostgreSQL es la siguiente:
date_add ( timestamp with time zone, interval [, zone] )
- timestamp with time zone: fecha con zona horaria.
- interval: intervalo que se quiere agregar a la fecha.
- zone: es un argumento opcional y sirve para definir la zona horaria.
Ejemplos
En el siguiente ejemplo comprobamos como se le suma un día a la fecha y hora ‘1986-09-26 00:00:00+02’
select date_add('1986-09-26 00:00:00+02'::timestamptz, '1 day'::interval, 'Europe/Warsaw');

Es posible utilizar esta función sin especificar la zona y sin especificar la hora, aunque el resultado siempre será un campo de fecha y hora con zona horaria.
select date_add('1986-09-26', '1 day'::interval);

En caso de que necesites añadir un intervalo y no te sea necesario la hora ni la zona, puedes convertirlo a texto con la función to_char:
select to_char(date_add('1986-09-26', '1 day'::interval), 'dd/mm/yyyy');
