extract
Функции
Область применения: Databricks SQL Databricks Runtime
Возвращает значение field
source
.
Синтаксис
extract(field FROM source)
Аргументы
field
: ключевое слово, который выбирает, какую частьsource
следует извлечь.source
DATE
: выражение ,TIMESTAMP
илиINTERVAL
.
Возвращает
Если field
имеет значение SECOND
, то значение .DECIMAL(8, 6)
Во всех остальных случаях — .INTEGER
Поддерживаемые значения , field
если source
имеет значение DATE
или TIMESTAMP
.
YEAR
,Y
,YEARS
, ,YR
:YRS
поле годаYEAROFWEEK
: год нумерирования недели по стандарту ISO 8601, на который приходится дата и время. Например, 2005-01-02 является частью 53-й недели 2004 года, поэтому результатом будет 2004QUARTER
,QTR
: квартал (1–4) года, в который приходится дата и время.MONTH
,MON
,MONS
, :MONTHS
поле месяца (1–12)WEEK
,W
, :WEEKS
номер года по стандарту ISO 8601 на основе недели. Неделя считается началом в понедельник, а неделя 1 — первая неделя с >3 днями. В системе нумерирования недель ISO даты начала января могут быть частью 52-й или 53-й недели предыдущего года, а даты конца декабря могут быть частью первой недели следующего года. Например, 2005-01-02 является частью 53-й недели 2004 года, а 2012-12-31 является частью первой недели 2013 годаDAY
,D
,DAYS
: поле дня месяца (1–31)DAYOFWEEK
,DOW
: день недели для даты и времени от воскресенья (1) до субботы (7)DAYOFWEEK_ISO
,DOW_ISO
: день недели на основе ISO 8601 для datetime с понедельника (1) по воскресенье(7)DOY
: день года (1 - 365/366)HOUR
,H
,HOURS
,HR
, :HRS
поле часа (0–23)MINUTE
,M
,MIN
, ,MINS
:MINUTES
поле минут (0–59)SECOND
,S
,SEC
, ,SECONDS
:SECS
поле секунд, включая дробные части
Поддерживаемые значения , field
когда source
имеет значение INTERVAL
(без учета регистра):
YEAR
,Y
,YEARS
, ,YR
:YRS
общее количество месяцев / 12MONTH
,MON
,MONS
, :MONTHS
общее количество месяцев, % 12DAY
,D
, :DAYS
часть интервала в дняхHOUR
,H
,HOURS
,HR
, :HRS
сколько часов содержит микросекундMINUTE
,M
,MIN
, ,MINS
:MINUTES
сколько минут осталось после приема часов из микросекундSECOND
,S
,SEC
, ,SECONDS
:SECS
сколько секунд с долями осталось после приема часов и минут из микросекунд
Примеры
> 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