Функции для работы с датой и временем

Большинство функций в этом разделе принимают необязательный аргумент временной зоны, например, Europe/Amsterdam. В этом случае используется указанная временная зона, а не локальная (по умолчанию).

Пример

SELECT
    toDateTime('2016-06-15 23:00:00') AS time,
    toDate(time) AS date_local,
    toDate(time, 'Asia/Yekaterinburg') AS date_yekat,
    toString(time, 'US/Samoa') AS time_samoa

┌────────────────time─┬─date_local─┬─date_yekat─┬─time_samoa──────────┐
│ 2016-06-15 23:00:00 │ 2016-06-15 │ 2016-06-16 │ 2016-06-15 09:00:00 │
└─────────────────────┴────────────┴────────────┴─────────────────────┘

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL. Ознакомиться с актуальным списком функций и их поведением можно в официальном репозитории ClickHouse, выбрав нужную версию из веток. Например: список функций для работы с датой и временем для ClickHouse 24.7.

Table 1. Функции для работы с датой и временем
Функция Описание

makeDate

Создает объект Date из года, месяца и дня или из года и дня года.

makeDateTime

Создает объект DateTime из года, месяца, дня, часа, минуты и секунды.

timestamp

Преобразует первый аргумент в тип DateTime64(6). Если предоставлен второй аргумент, добавляет указанное время к преобразованному значению.

timeZone

Возвращает часовой пояс текущего сеанса.

serverTimeZone

Возвращает часовой пояс сервера.

toTimeZone

Конвертирует дату или дату со временем в указанный часовой пояс без изменения внутреннего значения.

timeZoneOf

Возвращает имя часового пояса для типов данных DateTime или DateTime64.

timeZoneOffset

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

toYear

Возвращает годовой компонент (н.э.) даты или даты со временем.

toQuarter

Возвращает квартал (1-4) даты или даты со временем.

toMonth

Возвращает месячный компонент (1-12) даты или даты со временем.

toDayOfYear

Возвращает номер дня в году (1-366) даты или даты со временем.

toDayOfMonth

Возвращает номер дня в месяце (1-31) даты или даты со временем.

toDayOfWeek

Возвращает номер дня недели даты или даты со временем.

toHour

Возвращает часовой компонент (0-24) даты со временем.

toMinute

Возвращает минутный компонент (0-59) даты со временем.

toSecond

Возвращает секундный компонент (0-59) даты со временем. Секунды високосные не учитываются.

toMillisecond

Возвращает миллисекундный компонент (0-999) даты со временем.

toUnixTimestamp

Преобразует строку, дату или дату со временем в Unix Timestamp в представлении UInt32.

toStartOfYear

Округляет дату или дату со временем до первого дня года.

toStartOfISOYear

Округляет дату или дату со временем до первого дня ISO года, который может отличаться от "обычного" года.

toStartOfQuarter

Округляет дату или дату со временем до первого дня квартала.

toStartOfMonth

Округляет дату или дату со временем до первого дня месяца.

toLastDayOfMonth

Округляет дату или дату со временем до последнего дня месяца.

toMonday

Округляет дату или дату со временем до ближайшего понедельника.

toStartOfWeek

Округляет дату или дату со временем до начала недели, которая начинается в воскресенье или понедельник.

toLastDayOfWeek

Округляет дату или дату со временем до конца недели, которая заканчивается в субботу или воскресенье.

toStartOfDay

Округляет дату со временем до начала дня.

toStartOfHour

Округляет дату со временем до начала часа.

toStartOfMinute

Округляет дату со временем до начала минуты.

toStartOfSecond

Округляет дату со временем, удаляя подсекунды.

toStartOfFiveMinutes

Округляет дату со временем до начала пяти минутного интервала.

toStartOfTenMinutes

Округляет дату со временем до начала десяти минутного интервала.

toStartOfFifteenMinutes

Округляет дату со временем до начала пятнадцати минутного интервала.

toStartOfInterval

Обобщенная функция, аналогичная другим функциям toStartOf*(). Например, toStartOfInterval(t, INTERVAL 1 year) возвращает то же, что и toStartOfYear(t).