As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Função DATE_TRUNC
A função DATE_TRUNC trunca uma expressão de timestamp ou literal com base na parte da data especificada, tal como hora, dia ou mês.
Sintaxe
DATE_TRUNC('datepart', timestamp)
Argumentos
- datepart
-
A parte da data para qual truncar o valor de timestamp. A entrada timestamp é truncada para que a entrada datepart seja precisa. Por exemplo,
month
trunca para o primeiro dia do mês. Os formatos válidos são:-
microssegundo, microssegundos
-
milissegundo, milissegundos
-
segundo, segundos
-
minuto, minutos
-
hora, horas
-
dia, dias
-
semana, semanas
-
mês, meses
-
trimestre, trimestres
-
ano, anos
-
década, décadas
-
século, séculos
-
milênio, milênios
Para obter mais informações sobre a abreviação de alguns formatos, consulte Partes da data para funções de data ou de timestamp
-
- timestamp
-
Uma coluna de timestamp ou uma expressão que converta implicitamente para um timestamp.
Tipo de retorno
TIMESTAMP
Exemplos
Truncar o carimbo de data/hora de entrada para o segundo.
SELECT DATE_TRUNC('second', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 04:05:06
Truncar timestamp para minuto.
SELECT DATE_TRUNC('minute', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 04:05:00
Truncar timestamp para hora.
SELECT DATE_TRUNC('hour', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 04:00:00
Truncar timestamp para dia.
SELECT DATE_TRUNC('day', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 00:00:00
Truncar timestamp para o primeiro dia de um mês.
SELECT DATE_TRUNC('month', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-01 00:00:00
Truncar timestamp para o primeiro dia de um trimestre.
SELECT DATE_TRUNC('quarter', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-01 00:00:00
Truncar timestamp para o primeiro dia de um ano.
SELECT DATE_TRUNC('year', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-01-01 00:00:00
Truncar timestamp para o primeiro dia de um século.
SELECT DATE_TRUNC('millennium', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2001-01-01 00:00:00
Trunque o carimbo de data/hora de entrada para o a segunda-feira de uma semana.
select date_trunc('week', TIMESTAMP '20220430 04:05:06.789');
date_trunc 2022-04-25 00:00:00
No exemplo a seguir, a função DATE_TRUNC usa a parte da data “week” para retornar a data para a segunda-feira 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