Ir al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

INTERVALO PostgreSQL

El `INTERVALO` de PostgreSQL es una función de fecha que se utiliza para representar y manipular un intervalo de tiempo, como días, meses o años. Permite sumar o restar intervalos de tiempo específicos de los tipos de datos `TIMESTAMP` o `DATE`.

Utilización

La función `INTERVALO` se utiliza cuando necesitas realizar operaciones aritméticas de fecha y hora, como sumar o restar periodos de tiempo a una fecha. Es especialmente útil para gestionar tareas que implican eventos recurrentes o programación.

SELECT date_column ± INTERVAL 'quantity unit';

En esta sintaxis, `INTERVALO `unidad de cantidad` especifica el intervalo de tiempo que hay que sumar o restar a `columna_fecha`.

Ejemplos

1. Añadir días a una fecha

SELECT CURRENT_DATE + INTERVAL '5 days';

Este ejemplo añade cinco días a la fecha actual, devolviendo una nueva fecha cinco días en el futuro.

2. Restar meses a una fecha

SELECT CURRENT_DATE - INTERVAL '2 months';

Aquí, se restan dos meses a la fecha actual, proporcionando una fecha dos meses anterior.

3. Manipulación de intervalos complejos

SELECT NOW() + INTERVAL '1 year 2 months 3 days';

Este ejemplo añade un intervalo complejo de un año, dos meses y tres días a la marca de tiempo actual, demostrando la flexibilidad de la función `INTERVALO`.

Uso adicional con precisión de intervalo

PostgreSQL permite la precisión de intervalo, que puede especificar intervalos con mayor exactitud, como `INTERVALO DE AÑO A MES` o `INTERVALO DE DÍA A SEGUNDO`. Esto es útil para especificaciones complejas.

SELECT INTERVAL '1-2' YEAR TO MONTH; -- 1 year and 2 months

Funciones de normalización de intervalos

Para normalizar los intervalos, PostgreSQL proporciona funciones como `JUSTIFY_DAYS()`, `JUSTIFY_HOURS()` y `JUSTIFY_INTERVAL()` para ajustar los intervalos a formas más convencionales.

SELECT JUSTIFY_INTERVAL(INTERVAL '30 days'); -- Converts to '1 month'

Manejo de diferentes unidades

Los intervalos pueden comportarse de forma diferente según las unidades utilizadas. Por ejemplo, añadir un mes a una fecha de enero da como resultado una fecha de febrero, que puede tener menos días.

Consejos y buenas prácticas

  • Utiliza unidades coherentes. Sé explícito con las unidades (por ejemplo, días, meses) para garantizar la claridad y evitar malentendidos.
  • Valida la aritmética de la fecha. Comprueba siempre los cálculos de intervalos para confirmar que producen los resultados esperados, sobre todo cuando varían las longitudes de los meses y los años bisiestos.
  • Combínalo con `AGE()`. Utiliza `INTERVALO` con la función `EDAD()` para calcular la diferencia entre dos fechas y tener un manejo de fechas más completo.
  • Aprovecha para programar. Utiliza `INTERVALO` en aplicaciones de programación para gestionar fácilmente eventos y citas recurrentes.
  • Evita los errores comunes. Ten en cuenta posibles problemas, como intervalos negativos o desbordamiento de intervalos, y asegúrate de que la lógica gestiona correctamente estos escenarios.