Funkcja extract
Dotyczy: Databricks SQL Databricks Runtime
Zwraca wartość field
source
.
Składnia
extract(field FROM source)
Argumenty
field
: słowo kluczowe, które wybiera,source
która część powinna zostać wyodrębniona.source
: wyrażenieDATE
,TIMESTAMP
lubINTERVAL
.
Zwraca
Jeśli field
element to SECOND
, a DECIMAL(8, 6)
.
We wszystkich innych przypadkach element INTEGER
.
Obsługiwane wartości parametru field
when source
to DATE
lub TIMESTAMP
:
YEAR
, ,Y
,YEARS
,YRS
YR
: pole rokuYEAROFWEEK
: rok numerowania tygodniowego ISO 8601, w przypadku którego przypada data/godzina. Na przykład 2005-01-02 jest częścią 53 tygodnia roku 2004, więc wynik to 2004QUARTER
,QTR
: kwartał (1– 4) roku, w ramach którego przypada data/godzinaMONTH
, ,MON
,MONTHS
MONS
: pole miesiąca (1–12)WEEK
, ,W
WEEKS
: liczba tygodniowo-tygodniowego roku ISO 8601. Tydzień jest uważany za rozpoczęcie w poniedziałek i tydzień 1 jest pierwszym tygodniem z >3 dni. W systemie numerowania tygodni ISO istnieje możliwość, aby daty z początku stycznia były częścią 52 lub 53 tygodnia poprzedniego roku, a pod koniec grudnia daty będą częścią pierwszego tygodnia następnego roku. Na przykład 2005-01-02 jest częścią 53 tygodnia roku 2004, podczas gdy 2012-12-31 jest częścią pierwszego tygodnia 2013 r.DAY
, ,D
DAYS
: dzień pola miesiąca (1 – 31)DAYOFWEEK
,DOW
: dzień tygodnia dla daty/godziny jako niedziela(1) do soboty (7)DAYOFWEEK_ISO
,DOW_ISO
: iso 8601 na podstawie dnia tygodnia dla daty/godziny w poniedziałek(1) do niedzieli(7)DOY
: dzień roku (1 – 365/366)HOUR
, ,H
,HOURS
,HRS
HR
: pole godziny (od 0 do 23)MINUTE
, ,M
,MIN
,MINUTES
MINS
: pole minut (od 0 do 59)SECOND
, ,S
,SEC
,SECS
SECONDS
: pole sekund, w tym części ułamkowe
Obsługiwane wartości field
, gdy source
to INTERVAL
(bez uwzględniania wielkości liter):
YEAR
,Y
, ,YEARS
,YRS
YR
: łączna liczba miesięcy / 12MONTH
, ,MON
,MONTHS
MONS
: łączna liczba miesięcy % 12DAY
, ,DAYS
:D
część dni interwałuHOUR
, ,H
,HOURS
,HRS
HR
: ile godzin zawiera mikrosekundyMINUTE
, ,M
,MIN
,MINUTES
MINS
: ile minut pozostało po kilku godzinach od mikrosekundSECOND
, ,S
,SEC
,SECS
SECONDS
: ile sekund z ułamkami pozostało po godzinach i minutach od mikrosekund
Przykłady
> 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