Функция date_part
Область применения: Databricks SQL Databricks Runtime
Извлекает часть даты, метки времени или интервала.
Синтаксис
date_part(fieldStr, expr)
Аргументы
fieldStr
: литералSTRING
.expr
: ,DATE
TIMESTAMP
илиINTERVAL
выражение.
Возвраты
Если для fieldStr
задано значение 'SECOND'
, то результатом будет DECIMAL(8, 6)
.
Во всех остальных случаях — INTEGER
.
Поддерживаемые значения в том случае, field
если source
это DATE
или TIMESTAMP
:
'YEAR'
,'Y'
, ,'YR'
'YEARS'
'YRS'
: поле года'YEAROFWEEK'
: ISO 8601 еженедельный нумерующий год, в который попадает дата и время. Например, 2005-01-02 относится к 53-й неделе 2004 года, поэтому результатом будет 2004.'QUARTER'
,'QTR'
: квартал (1 - 4) года, в который падает дата и время.'MONTH'
, ,'MON'
'MONS'
'MONTHS'
: поле месяца (1 – 12)'WEEK'
, :'W'
'WEEKS'
число iso 8601 недели на неделе. Считается, что неделя начинается в понедельник, а первая неделя года — это та, в которой >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 основанный день недели для даты и времени в понедельник(1) до воскресенья(7)'DOY'
: день года (1 - 365/366)'HOUR'
, ,'H'
'HOURS'
'HR'
'HRS'
, : поле часа (0 – 23)'MINUTE'
,'M'
, ,'MINS'
'MIN'
'MINUTES'
: поле минут (0 – 59)'SECOND'
,'S'
, ,'SECONDS'
'SEC'
'SECS'
: поле секунд, включая дробные части
Поддерживаемые значения, когда field
source
имеют INTERVAL
значение (без учета регистра):
'YEAR'
, , ,'Y'
'YEARS'
'YR'
'YRS'
: общий месяц / 12'MONTH'
, ,'MON'
'MONS'
'MONTHS'
: общий месяцы % 12'DAY'
, :'D'
'DAYS'
часть интервала в днях'HOUR'
,'H'
, ,'HR'
'HOURS'
'HRS'
: сколько часов содержит микросекунда'MINUTE'
, ,'M'
,'MINS'
'MIN'
'MINUTES'
: сколько минут осталось после приема часов из микросекунд'SECOND'
,'S'
,'SEC'
'SECONDS'
'SECS'
: Сколько секунд с дробями осталось после приема часов и минут от микросекунд
Функция date_part
является синонимом стандартной функции извлечения SQL.
date_part('year', CURRENT_DATE)
Например, эквивалентноextract(YEAR FROM CURRENT_DATE)
Примеры
> SELECT date_part('YEAR', TIMESTAMP'2019-08-12 01:00:00.123456');
2019
> SELECT date_part('Week', TIMESTAMP'2019-08-12 01:00:00.123456');
33
> SELECT date_part('day', DATE'2019-08-12');
224
> SELECT date_part('SECONDS', TIMESTAMP'2019-10-01 00:00:01.000001');
1.000001
> SELECT date_part('Months', INTERVAL '2-11' YEAR TO MONTH);
11
> SELECT date_part('seconds', INTERVAL '5:00:30.001' HOUR TO SECOND);
30.001000