Funkce extract
Platí pro: Databricks SQL Databricks Runtime
Vrátí field
hodnotu source
.
Syntaxe
extract(field FROM source)
Argumenty
field
: Klíčové slovo, které vybere, která částsource
by se měla extrahovat.source
: ADATE
,TIMESTAMP
neboINTERVAL
výraz.
Návraty
Pokud field
je , SECOND
a DECIMAL(8, 6)
.
Ve všech ostatníchpřípadechch INTEGER
Podporované hodnoty v source
DATE
těchto field
případech:TIMESTAMP
YEAR
,Y
,YEARS
, ,YRS
YR
: Pole rokYEAROFWEEK
: Iso 8601 week-numbering year that the datetime falls in. Například 2005-01-02 je součástí 53. týdne roku 2004, takže výsledek je 2004.QUARTER
,QTR
: Čtvrtletí (1 –4) roku, ve které spadá datum a časMONTH
,MON
, ,MONTHS
MONS
: Pole měsíce (1 – 12)WEEK
,W
,WEEKS
: Číslo iso 8601 týden-týden-založené-na roce. Týden se považuje za začátek v pondělí a týden 1 je první týden se >3 dny. V systému číslování týdnů ISO je možné, aby data počátku ledna byla součástí 52. nebo 53. týdne předchozího roku a aby data konce prosince byla součástí prvního týdne příštího roku. Například 2005-01-02 je součástí 53. týdne roku 2004, zatímco 2012-12-31 je součástí prvního týdne roku 2013.DAY
,D
:DAYS
Den v měsíci (1 - 31)DAYOFWEEK
,DOW
: Den v týdnu pro datum a čas jako neděle(1) až sobota(7)DAYOFWEEK_ISO
,DOW_ISO
: iso 8601 na základě dne v týdnu pro datum a čas jako pondělí(1) až neděle(7)DOY
: Den v roce (1 – 365/366)HOUR
,H
,HOURS
, ,HRS
HR
: Pole hodin (0 – 23)MINUTE
,M
,MIN
, ,MINUTES
MINS
: Pole minut (0 – 59)SECOND
,S
,SEC
, ,SECS
SECONDS
: Pole sekund, včetně desetinné části
Podporované hodnoty field
, kdy source
INTERVAL
jsou (nerozlišují malá a velká písmena):
YEAR
,Y
,YEARS
, ,YR
:YRS
Celkový počet měsíců / 12MONTH
,MON
, ,MONTHS
MONS
: Celkový počet měsíců % 12DAY
, ,D
DAYS
: Část intervalu dnůHOUR
,H
,HOURS
,HR
, :HRS
Kolik hodin mikrosekundy obsahujeMINUTE
,M
,MIN
,MINS
, :MINUTES
Kolik minut zbývá po uplynutí hodin od mikrosekundSECOND
,S
,SEC
, ,SECS
SECONDS
: Kolik sekund s zlomky zbývá po uplynutí hodin a minut od mikrosekund
Příklady
> 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