Función DATE_TRUNC - Amazon Redshift

Función DATE_TRUNC

La función DATE_TRUNC trunca todo literal o expresión de marca temporal basado en la parte de fecha especificada, como la hora, la semana o el mes.

Sintaxis

DATE_TRUNC('datepart', timestamp)

Argumentos

datepart

La parte de fecha que trunca el valor de una marca temporal. La timestamp de entrada se trunca en la precisión de la entrada datepart. Por ejemplo, month se trunca en el primer día del mes. Los formatos válidos son los siguientes:

  • microsegundo, microsegundos

  • milisegundo, milisegundos

  • segundo, segundos

  • minuto, minutos

  • hora, horas

  • día, días

  • semana, semanas

  • mes, meses

  • trimestre, trimestres

  • año, años

  • década, décadas

  • siglo, siglos

  • milenio, milenios

Para obtener más información sobre las abreviaturas de algunos formatos, consulte Partes de fecha para funciones de fecha o marca temporal.

timestamp

Una columna de marca temporal o una expresión que, implícitamente, se convierte en una marca temporal.

Tipo de retorno

TIMESTAMP

Ejemplos

‎Trunque la marca temporal de entrada en el segundo.

SELECT DATE_TRUNC('second', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2020-04-30 04:05:06

‎Trunque la marca temporal de entrada al minuto.

SELECT DATE_TRUNC('minute', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2020-04-30 04:05:00

‎Trunque la marca temporal de entrada a la hora.

SELECT DATE_TRUNC('hour', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2020-04-30 04:00:00

‎Trunque la marca temporal de entrada al día.

SELECT DATE_TRUNC('day', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2020-04-30 00:00:00

‎Trunque la marca temporal de entrada al primer día de un mes.

SELECT DATE_TRUNC('month', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2020-04-01 00:00:00

‎Trunque la marca temporal de entrada al primer día de un trimestre.

SELECT DATE_TRUNC('quarter', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2020-04-01 00:00:00

‎Trunque la marca temporal de entrada al primer día de un año.

SELECT DATE_TRUNC('year', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2020-01-01 00:00:00

‎Trunque la marca temporal de entrada al primer día de un siglo.

SELECT DATE_TRUNC('millennium', TIMESTAMP '20200430 04:05:06.789'); date_trunc 2001-01-01 00:00:00

‎Trunque la marca temporal de entrada al lunes de un mes.

select date_trunc('week', TIMESTAMP '20220430 04:05:06.789'); date_trunc 2022-04-25 00:00:00

En el siguiente ejemplo, la función DATE_TRUNC usa la parte de fecha “week” (semana) para devolver la fecha del lunes de cada semana.

select date_trunc('week', saletime), sum(pricepaid) from sales where saletime like '2008-09%' group by date_trunc('week', saletime) order by 1; date_trunc | sum ------------+------------- 2008-09-01 | 2474899 2008-09-08 | 2412354 2008-09-15 | 2364707 2008-09-22 | 2359351 2008-09-29 | 705249