Função EXTRACT - AWS Clean Rooms

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 EXTRACT

A função EXTRACT retorna a parte da data ou hora de um valor de TIMESTAMP, TIMESTAMPTZ, TIME ou TIMETZ. Os exemplos incluem um dia, mês, ano, hora, minuto, segundo, milissegundo ou microssegundo de um timestamp.

Sintaxe

EXTRACT(datepart FROM source)

Argumentos

datepart

O subcampo de uma data ou hora que será extraído, como dia, mês, ano, hora, minuto, segundo, milissegundo ou microssegundo. Para os possíveis valores, consulte Partes da data para funções de data ou de timestamp.

source

Uma coluna ou expressão que é avaliada como um tipo de dado TIMESTAMP, TIMESTAMPTZ, TIME ou TIMETZ.

Tipo de retorno

INTEGER se o valor de source for avaliado como TIMESTAMP, TIME ou TIMETZ.

DOUBLE PRECISION se o valor de source for avaliado como TIMESTAMPTZ.

Exemplos com TIMESTAMP

O exemplo a seguir determina os números da semana para vendas em que o preço pago foi de $10.000 ou mais.

select salesid, extract(week from saletime) as weeknum from sales where pricepaid > 9999 order by 2; salesid | weeknum --------+--------- 159073 | 6 160318 | 8 161723 | 26

O exemplo a seguir retorna o valor de minutos de um valor de timestamp literal.

select extract(minute from timestamp '2009-09-09 12:08:43'); date_part --

O exemplo a seguir retorna o número de milissegundos de um valor de timestamp literal.

select extract(ms from timestamp '2009-09-09 12:08:43.101'); date_part ----------- 101

Exemplos com TIMESTAMPTZ

O exemplo a seguir retorna o ano de um valor de timestamp literal.

select extract(year from timestamptz '1.12.1997 07:37:16.00 PST'); date_part ----------- 1997

Exemplos com TIME

O TIME_TEST da tabela a seguir tem uma coluna TIME_VAL (tipo TIME) com três valores inseridos.

select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00

O exemplo a seguir extrai os minutos de cada time_val.

select extract(minute from time_val) as minutes from time_test; minutes ----------- 0 0 58

O exemplo a seguir extrai as horas de cada time_val.

select extract(hour from time_val) as hours from time_test; hours ----------- 20 0 0

O exemplo a seguir extrai milissegundos de um valor literal.

select extract(ms from time '18:25:33.123456'); date_part ----------- 123

Exemplos com TIMETZ

O TIMETZ_TEST da tabela de exemplo a seguir tem uma coluna TIMETZ_VAL (tipo TIMETZ) com três valores inseridos.

select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00

O exemplo a seguir extrai as horas de cada timetz_val.

select extract(hour from timetz_val) as hours from time_test; hours ----------- 4 0 5

O exemplo a seguir extrai milissegundos de um valor literal. Literais não são convertidos para UTC antes da extração ser processada.

select extract(ms from timetz '18:25:33.123456 EST'); date_part ----------- 123

O exemplo a seguir retorna a diferença de horas de um fuso horário em relação ao UTC de um valor de timetz literal.

select extract(timezone_hour from timetz '1.12.1997 07:37:16.00 PDT'); date_part ----------- -7