date_part Функции

Область применения:проверка помечено да Databricks SQL проверка помечено да Databricks Runtime

Извлекает часть даты, метки времени или интервала.

Синтаксис

date_part(fieldStr, expr)

Аргументы

  • fieldStr: литерал STRING .
  • exprDATE: выражение , TIMESTAMPили INTERVAL .

Возвращает

Если fieldStr имеет значение 'SECOND', то значение .DECIMAL(8, 6) Во всех остальных случаях — .INTEGER

Поддерживаемые значения , field если source имеет значение DATE или TIMESTAMP.

  • 'YEAR', 'Y', 'YEARS', , 'YR': '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 на основе недели. Неделя считается началом в понедельник, а неделя 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'общее количество месяцев / 12
  • 'MONTH', 'MON', 'MONS', : 'MONTHS'общее количество месяцев, % 12
  • 'DAY', 'D', : 'DAYS'часть интервала в днях
  • 'HOUR', 'H', 'HOURS', 'HR', : 'HRS'сколько часов содержит микросекунд
  • 'MINUTE', 'M', 'MIN', , 'MINS': '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