extract Функции

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

Возвращает значение fieldsource.

Синтаксис

extract(field FROM source)

Аргументы

  • field: ключевое слово, который выбирает, какую часть source следует извлечь.
  • sourceDATE: выражение , 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 года, поэтому результатом будет 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сколько секунд с долями осталось после приема часов и минут из микросекунд

Примеры

> 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