Función DATE_TRUNC en PostgreSQL

La función DATE_TRUNC en PostgreSQL es una herramienta poderosa para trabajar con datos temporales, ya que permite truncar un valor de tipo TIMESTAMP o INTERVAL a la precisión especificada. Esta función es especialmente útil para realizar análisis temporales, como agrupar datos por días, meses, trimestres u otras unidades de tiempo, al eliminar la granularidad innecesaria.

Con DATE_TRUNC, puedes definir la parte del valor temporal que deseas conservar, como el año, mes, día, hora, minuto o segundo. Esto simplifica la manipulación y comparación de datos cronológicos, haciéndola ideal para reportes o consultas donde necesitas agrupar o filtrar información basada en unidades específicas de tiempo.

En este artículo, primero exploraremos la sintaxis básica de DATE_TRUNC, y después veremos ejemplos prácticos para que comprendas cómo aprovechar al máximo esta función en diferentes escenarios de uso.

Podemos indicar las siguientes opciones para truncar los valores: año, mes, semana, día, hora, minuto, segundo, entre otras. A continuación, veremos cómo implementarla.

Para más información, puedes consultar la documentación oficial de la función DATE_TRUNC en PostgreSQL.

CampoDescripción
centurysiglo
decadedecada
yearaño
quartertrimestre del año
monthmes
weeksemana
daydía
hourhora
minuteminuto
secondsegundo
microsecondsmicrosegundo
millisecondsmilisegundos
dowdía de la semana (0-6)
doydía del año
epochnumero de segundos
isodowdía de la semana (ISO)
isoyearaño (ISO)
Tabla de Contenidos ocultar

Sintaxis

La sintaxis para utilizar la función DATE_TRUNC en PostgreSQL es la siguiente:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
DATE_TRUNC(campo, origen)
DATE_TRUNC(campo, origen)
DATE_TRUNC(campo, origen)

Esta función consta de dos argumentos obligatorios:

  • campo: parte que se quiere extraer como por ejemplo year, day, etc.
  • origen: fecha de la que se va a truncar el primer argumento. Tiene que ser de tipo TIMESTAMP o INTERVAL. Si se le especifica un valor de tipo DATE, automáticamente se convertirá en TIMESTAMP.

Ejemplo

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT DATE_TRUNC('hour', TIMESTAMP '2017-03-17 02:09:30');
SELECT DATE_TRUNC('hour', TIMESTAMP '2017-03-17 02:09:30');
SELECT DATE_TRUNC('hour', TIMESTAMP '2017-03-17 02:09:30');
Función DATE_TRUNC en PostgreSQL

Escribir un comentario