Função extract
Aplica-se a: Databricks SQL Databricks Runtime
Devoluções field
de source
.
Sintaxe
extract(field FROM source)
Argumentos
field
: Uma palavra-chave que seleciona qual parte deve ser extraídasource
.source
: ADATE
,TIMESTAMP
, ouINTERVAL
expressão.
Devoluções
Se field
for SECOND
, um DECIMAL(8, 6)
.
Em todos os outros casos, um INTEGER
arquivo .
Valores suportados de field
quando source
é DATE
ou TIMESTAMP
:
YEAR
,Y
,YEARS
,YR
, :YRS
O campo do anoYEAROFWEEK
: O ano de numeração da semana ISO 8601 em que a data-hora se enquadra. Por exemplo, 2005-01-02 faz parte da 53ª semana do ano de 2004, portanto o resultado é 2004QUARTER
,QTR
: O trimestre (1 - 4) do ano em que a data/hora caiMONTH
,MON
,MONS
,MONTHS
: O campo do mês (1 - 12)WEEK
,W
,WEEKS
: O número do ano baseado na semana da ISO 8601. Considera-se que uma semana começa numa segunda-feira e a semana 1 é a primeira semana com >3 dias. No sistema de numeração de semanas ISO, é possível que as datas do início de janeiro façam parte da 52ª ou 53ª semana do ano anterior e que as datas do final de dezembro façam parte da primeira semana do ano seguinte. Por exemplo, 2005-01-02 faz parte da 53ª semana do ano de 2004, enquanto 2012-12-31 faz parte da primeira semana de 2013DAY
,D
,DAYS
: O campo do dia do mês (1 - 31)DAYOFWEEK
,DOW
: O dia da semana para datetime como domingo(1) a sábado(7)DAYOFWEEK_ISO
,DOW_ISO
: ISO 8601 com base no dia da semana para datetime como segunda-feira(1) a domingo(7)DOY
: O dia do ano (1 - 365/366)HOUR
,H
,HOURS
,HR
, :HRS
O campo da hora (0 - 23)MINUTE
,M
,MIN
,MINS
, :MINUTES
O campo de minutos (0 - 59)SECOND
,S
,SEC
,SECONDS
, :SECS
O campo de segundos, incluindo partes fracionárias
Valores suportados de quando source
é INTERVAL
(não diferencia maiúsculas de field
minúsculas):
YEAR
,Y
,YEARS
,YR
,YRS
: O total meses / 12MONTH
,MON
,MONS
,MONTHS
: O total dos meses % 12DAY
,D
,DAYS
: Os dias fazem parte do intervaloHOUR
,H
,HOURS
,HR
,HRS
: Quantas horas contém os microssegundosMINUTE
,M
,MIN
,MINS
,MINUTES
: Quantos minutos restam depois de tirar horas de microssegundosSECOND
,S
,SEC
,SECONDS
,SECS
: Quantos segundos com frações restantes depois de tirar horas e minutos de microssegundos
Exemplos
> SELECT extract(YEAR FROM TIMESTAMP '2019-08-12 01:00:00.123456');
2019
> SELECT extract(week FROM TIMESTAMP'2019-08-12 01:00:00.123456');
33
> SELECT extract(DAY FROM DATE'2019-08-12');
12
> SELECT extract(SECONDS FROM TIMESTAMP'2019-10-01 00:00:01.000001');
1.000001
> SELECT extract(MONTHS FROM INTERVAL '2-11' YEAR TO MONTH);
11
> SELECT extract(SECONDS FROM INTERVAL '5:00:30.001' HOUR TO SECOND);
30.001000