Функции даты и времени
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
.