Функции даты и времени
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
YEAR
Синтаксис:YEAR( datetime )
Возвращает номер года в указанной дате datetime.