Функции даты и времени

DATEADD

Синтаксис:DATEADD( datetime [ , unit [ , number ] ] )

Возвращает дату, полученную в результате добавления unit в количестве number к указанной дате datetime.

Аргумент number задается целым числом. Может принимать отрицательные значения.
Аргумент unit принимает следующие значения:

  • "year" — год;
  • "month" — месяц;
  • "day" — день;
  • "hour" — час;
  • "minute" — минута;
  • "second" — секунда.

DATEPART

Синтаксис:DATEPART( datetime, unit [ , firstday ] )

Возвращает часть даты в виде целого числа.

В зависимости от аргумента unit возвращает следующие значения:

  • "year" — номер года (см. YEAR);
  • "quarter" — номер квартала года (от 1 до 4) (см. QUARTER);
  • "month" — номер месяца в году (см. MONTH);
  • "week" — номер недели в году по ISO 8601 (см. WEEK);
  • "dayofweek", "dow" — номер дня недели (см. DAYOFWEEK);
  • "day" — номер дня в месяце (см. DAY);
  • "hour" — номер часа в дне (см. HOUR);
  • "minute" — номер минуты в часе (см. MINUTE);
  • "second" — номер секунды в минуте (см. SECOND).

Если выбран "dayofweek", то дополнительным параметром firstday можно задать, какой день недели считать первым — по умолчанию это понедельник. Более подробно об этом параметре смотрите в описании функции DAYOFWEEK.

DATETRUNC

Синтаксис:DATETRUNC( datetime, unit [ , number ] )

Возвращает дату, округленную по аргументу unit.

Если задан аргумент number, то происходит округление до этого количества временных единиц. Отсутствие аргумента эквивалентно значению 1.

Поддерживаемые значения unit:

  • "second";
  • "minute";
  • "hour";
  • "day" (при заданном number используется номер дня в году);
  • "week";
  • "month";
  • "quarter";
  • "year".

При использовании функции с тремя аргументами, она обрабатывается на стороне ClickHouse® функцией toStartOfInterval. Округление выполняется относительно определенного момента времени в соответствии с приведенной в описании функции таблицей. Например:

DATETRUNC(#2018-07-12 11:07:13#, "month", 4) = #2018-05-01 00:00:00#

Для аргумента unit со значением month округление считается от даты 1900-01-01. Между датами 2018-07-12 и 1900-01-01 прошло 1422 месяца. Если округлить это число до ближайшего числа, которое делится на 4 (аргумент number), то получится 1420 месяцев. Таким образом, если к дате 1900-01-01 прибавить 1420 месяцев, то получится значение 2018-05-01.

DAY

Синтаксис:DAY( datetime )

Возвращает номер дня в месяце в указанной дате datetime.

DAYOFWEEK

Синтаксис:DAYOFWEEK( datetime [ , firstday ] )

Возвращает день недели в соответствии с ISO 8601.

  • Понедельник — 1;
  • Воскресенье — 7.

Если указан дополнительный параметр firstday, то этот день считается первым в неделе. Допустимые значения:

  • "Monday", "Mon" — понедельник;
  • "Tuesday", "Tue" — вторник;
  • "Wednesday", "Wed" — среда;
  • "Thursday", "Thu" — четверг;
  • "Friday", "Fri" — пятница;
  • "Saturday", "Sat" — суббота;
  • "Sunday", "Sun" — воскресенье.

HOUR

Синтаксис:HOUR( datetime )

Возвращает номер часа в дне в указанной дате и времени datetime. При указании даты без времени возвращает 0.

MINUTE

Синтаксис:MINUTE( datetime )

Возвращает номер минуты в часе в указанной дате datetime. При указании даты без времени возвращает 0.

MONTH

Синтаксис:MONTH( datetime )

Возвращает номер месяца в году в указанной дате datetime.

NOW

Синтаксис:NOW()

Возвращает текущую дату и время в зависимости от источника данных и типа соединения.

QUARTER

Синтаксис:QUARTER( datetime )

Возвращает номер квартала года (от 1 до 4) в указанной дате datetime.

SECOND

Синтаксис:SECOND( datetime )

Возвращает номер секунды в минуте в указанной дате datetime. При указании даты без времени возвращает 0.

TODAY

Синтаксис:TODAY()

Возвращает текущую дату в зависимости от источника данных и типа соединения.

WEEK

Синтаксис:WEEK( value )

Возвращает номер недели в соответствии с ISO 8601. Первой считается неделя, которая содержит первый четверг года и 4.01.

YEAR

Синтаксис:YEAR( datetime )

Возвращает номер года в указанной дате datetime.

Предыдущая
Следующая