Поделиться через


Функция extract

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

Возвращает field из source.

Синтаксис

extract(field FROM source)

Аргументы

  • field: ключевое слово, определяющее, какую часть source следует извлечь.
  • source: , DATETIMESTAMPили INTERVAL выражение.

Возвраты

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

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

  • YEAR, Y, , YRYEARSYRS: поле года
  • YEAROFWEEK: ISO 8601 еженедельный нумерующий год, в который попадает дата и время. Например, 2005-01-02 относится к 53-й неделе 2004 года, поэтому результатом будет 2004.
  • QUARTER, QTR: квартал (1 - 4) года, в который падает дата и время.
  • MONTH, , MONMONSMONTHS: поле месяца (1 – 12)
  • WEEK, : WWEEKSчисло iso 8601 недели на неделе. Считается, что неделя начинается в понедельник, а первая неделя года — это та, в которой >3 дня. В системе нумерации недель по стандарту ISO первые дня января могут относится к 52-й или 53-й неделе предыдущего года, а последние дни декабря — к первой неделе следующего года. Например, 2005-01-02 относится к 53-й неделе 2004 года, а 2012-12-31 — к первой неделе 2013 года.
  • DAY, : DDAYSдень поля месяца (1 – 31)
  • DAYOFWEEK, DOW: День недели для даты и времени как воскресенье(1) до субботы(7)
  • DAYOFWEEK_ISO, DOW_ISO: ISO 8601 основанный день недели для даты и времени в понедельник(1) до воскресенья(7)
  • DOY: день года (1 - 365/366)
  • HOUR, , HHOURSHRHRS, : поле часа (0 – 23)
  • MINUTE, M, , MINSMINMINUTES: поле минут (0 – 59)
  • SECOND, S, , SECONDSSECSECS: поле секунд, включая дробные части

Поддерживаемые значения, когда field source имеют INTERVAL значение (без учета регистра):

  • YEAR, , , YYEARSYRYRS: общий месяц / 12
  • MONTH, , MONMONSMONTHS: общий месяцы % 12
  • DAY, : DDAYSчасть интервала в днях
  • HOUR, H, , HRHOURSHRS: сколько часов содержит микросекунда
  • MINUTE, , M, MINSMINMINUTES: сколько минут осталось после приема часов из микросекунд
  • SECOND, S, SECSECONDSSECS: Сколько секунд с дробями осталось после приема часов и минут от микросекунд

Примеры

> 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