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


Функция 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', '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. Считается, что неделя начинается в понедельник, а первая неделя года — это та, в которой >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', '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');
 12

> 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);
 1.001000