La función JUSTIFY_INTERVAL en PostgreSQL es una herramienta avanzada para trabajar con intervalos de tiempo, ya que permite ajustar intervalos de forma más natural y legible. Internamente, utiliza las funciones JUSTIFY_DAYS y JUSTIFY_HOURS para convertir horas en días (cada 24 horas es un día) y días en meses (cada 30 días es un mes), normalizando así los intervalos para que reflejen una representación más lógica y comprensible.
Como parte de las funciones de fecha en PostgreSQL, JUSTIFY_INTERVAL es especialmente útil cuando manejas intervalos complejos que necesitan un formato simplificado. Por ejemplo, si tienes un intervalo de 50 horas y 40 días, esta función ajustará automáticamente estos valores para representar 2 días y 10 horas, lo que facilita su interpretación en reportes y análisis.
En este artículo, primero exploraremos la sintaxis básica de JUSTIFY_INTERVAL, y luego analizaremos ejemplos prácticos para que comprendas cómo aplicarla en diferentes contextos.
Para más información, puedes consultar la documentación oficial de la función JUSTIFY_INTERVAL en PostgreSQL.
Sintaxis
La sintaxis para utilizar la función JUSTIFY_INTERVAL en PostgreSQL es la siguiente:
justify_hours(interval)
Interval debe ser el intervalo que quieres ajustar.
Ejemplo
Si tu intervalo son 2 meses y -6 horas nos devolverá 1 mes y 18 horas:
SELECT justify_interval(interval '2 mon -6 hours');
Diferencia entre funciones JUSTIFY
En un primer momento, podrías pensar que la función justify_interval y las funciones justify_hours y justify_days realizan la misma función, pero no es así. Veamos un ejemplo:
SELECT justify_interval(interval '2 mon -6 hours'), justify_hours(interval '2 mon -6 hours'), justify_days(interval '2 mon -6 hours');