Функции для работы с датами и временем
Большинство функций в этом разделе принимают необязательный аргумент часового пояса, например Europe/Amsterdam. В этом случае используется указанный часовой пояс, а не локальный (используемый по умолчанию).
Пример
UTCTimestamp
Введена в версии: v22.11
Возвращает текущие дату и время на момент анализа запроса. Функция является константным выражением.
Эта функция возвращает тот же результат, что и now('UTC'). Она была добавлена только для поддержки MySQL. Рекомендуется использовать now.
Синтаксис
Псевдонимы: UTC_timestamp
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает текущие дату и время на момент анализа запроса. DateTime
Примеры
Получение текущей отметки времени в UTC
YYYYMMDDToDate
Добавлено в: v23.9
Преобразует число, содержащее год, месяц и день, в тип Date.
Эта функция является противоположностью функции toYYYYMMDD().
Результат не определён, если входное значение не представляет собой корректное значение типа Date.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает значение типа Date на основе переданных аргументов Date
Примеры
Пример
YYYYMMDDToDate32
Добавлена в версии v23.9
Преобразует число, содержащее год, месяц и день, в Date32.
Эта функция является противоположностью функции toYYYYMMDD().
Результат не определён, если входное значение не кодирует корректное значение Date32.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает значение типа Date32 на основе переданных аргументов Date32
Примеры
Пример
YYYYMMDDhhmmssToDateTime
Введена в версии: v23.9
Преобразует число, содержащее год, месяц, день, час, минуту и секунду, в значение типа DateTime.
Эта функция является противоположностью функции toYYYYMMDDhhmmss().
Результат не определён, если входное значение не кодирует допустимое значение типа DateTime.
Синтаксис
Аргументы
YYYYMMDDhhmmss— Число, представляющее год, месяц, день, час, минуту и секунду.(U)Int*илиFloat*илиDecimaltimezone— Имя часового пояса.String
Возвращаемое значение
Возвращает значение типа DateTime на основе переданных аргументов. DateTime
Примеры
Пример
YYYYMMDDhhmmssToDateTime64
Появилась в версии v23.9
Преобразует число, содержащее год, месяц, день, час, минуту и секунду, в значение типа DateTime64.
Эта функция является противоположностью функции toYYYYMMDDhhmmss().
Результат не определён, если входное значение не кодирует корректное значение типа DateTime64.
Синтаксис
Аргументы
YYYYMMDDhhmmss— Число, содержащее год, месяц, день, час, минуту и секунду.(U)Int*илиFloat*илиDecimalprecision— Точность дробной части (0–9).UInt8timezone— Имя часового пояса.String
Возвращаемое значение
Возвращает значение DateTime64 на основе переданных аргументов. DateTime64
Примеры
Пример
addDate
Появилась в версии: v23.9
Добавляет временной интервал к указанной дате, дате и времени или строке в формате даты или даты и времени. Если в результате сложения получается значение вне диапазона типа данных, результат не определён.
Синтаксис
Аргументы
datetime— дата или дата со временем, к которой добавляетсяinterval.DateилиDate32илиDateTimeилиDateTime64илиStringinterval— интервал, который нужно добавить.Interval
Возвращаемое значение
Возвращает дату или дату со временем, полученную в результате добавления interval к datetime. Date или Date32 или DateTime или DateTime64
Примеры
Добавление интервала к дате
addDays
Добавлена в версии: v1.1
Добавляет указанное количество дней к дате, дате и времени или их строковому представлению.
Синтаксис
Аргументы
datetime— дата или дата со временем, к которой нужно прибавить указанное количество дней.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество дней, которое нужно добавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num дней. Date или Date32 или DateTime или DateTime64
Примеры
Добавление дней к значениям разных типов дат
Использование альтернативного синтаксиса INTERVAL
addHours
Впервые появилась в версии: v1.1
Добавляет указанное количество часов к дате, дате и времени или их строковому представлению.
Синтаксис
Аргументы
datetime— дата или дата со временем, к которой нужно прибавить указанное количество часов.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество часов, которое нужно добавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num часов, типа DateTime или DateTime64(3)
Примеры
Добавление часов к разным типам дат
Использование альтернативного синтаксиса INTERVAL
addInterval
Добавлена в версии: v22.11
Добавляет интервал к другому интервалу или к кортежу интервалов.
Интервалы одного и того же типа будут объединены в один интервал. Например, если переданы toIntervalDay(1) и toIntervalDay(2), то результатом будет (3), а не (1,1).
Синтаксис
Аргументы
interval_1— первый интервал или кортеж интервалов.IntervalилиTuple(Interval)interval_2— второй интервал, который будет добавлен.Interval
Возвращаемое значение
Возвращает кортеж интервалов Tuple(Interval)
Примеры
Сложение интервалов
addMicroseconds
Добавлена в версии: v22.6
Добавляет указанное количество микросекунд к дате со временем или к строковому представлению даты со временем.
Синтаксис
Аргументы
datetime— дата и время, к которым нужно прибавить заданное количество микросекунд.DateTimeилиDateTime64илиStringnum— количество микросекунд, которое нужно прибавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает date_time, увеличенное на num микросекунд, типа DateTime64
Примеры
Добавление микросекунд к разным типам даты и времени
Альтернативный синтаксис INTERVAL
addMilliseconds
Появилась в: v22.6
Добавляет указанное количество миллисекунд к дате и времени или к их строковому представлению.
Синтаксис
Аргументы
datetime— Дата и время, к которым нужно добавить указанное количество миллисекунд.DateTimeилиDateTime64илиStringnum— Количество миллисекунд, которое нужно добавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num миллисекунд. Тип результата — DateTime64
Примеры
Добавление миллисекунд к разным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addMinutes
Появилась в версии: v1.1
Добавляет указанное количество минут к дате, дате со временем или строковому представлению даты или даты со временем.
Синтаксис
Аргументы
datetime— дата или дата со временем, к которой нужно прибавить указанное количество минут.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество минут, которое нужно прибавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num минут. DateTime или DateTime64(3)
Примеры
Добавление минут к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addMonths
Введена в версии: v1.1
Добавляет заданное количество месяцев к дате, дате и времени или их строковому представлению.
Синтаксис
Аргументы
datetime— Дата или дата со временем, к которой нужно прибавить указанное количество месяцев.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество месяцев, которое нужно прибавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num месяцев. Date или Date32 или DateTime или DateTime64
Примеры
Добавление месяцев к различным типам дат
Использование альтернативного синтаксиса для INTERVAL
addNanoseconds
Добавлена в версии: v22.6
Добавляет заданное количество наносекунд к дате и времени или к строковому представлению даты и времени.
Синтаксис
Аргументы
datetime— дата и время, к которым нужно добавить заданное количество наносекунд.DateTimeилиDateTime64илиStringnum— количество наносекунд, которое нужно добавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num наносекунд. Тип результата — DateTime64
Примеры
Добавление наносекунд к разным типам даты и времени
Использование альтернативного синтаксиса для INTERVAL
addQuarters
Впервые появился в: v20.1
Добавляет заданное количество кварталов к дате, дате и времени или их строковому представлению.
Синтаксис
Аргументы
datetime— дата или дата со временем, к которой нужно добавить указанное количество кварталов.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество кварталов, на которое увеличиваетсяdatetime.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num кварталов. Date или Date32 или DateTime или DateTime64
Примеры
Добавление кварталов к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addSeconds
Впервые появилась в: v1.1
Добавляет указанное число секунд к дате, дате и времени или их строковому представлению.
Синтаксис
Аргументы
datetime— Дата или дата и время, к которой нужно прибавить заданное количество секунд.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество секунд, которое нужно добавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, увеличенное на num секунд. Тип результата — DateTime или DateTime64(3)
Примеры
Добавление секунд к различным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addTupleOfIntervals
Добавлено в версии: v22.11
Последовательно прибавляет к дате или дате-времени кортеж интервалов.
Синтаксис
Аргументы
datetime— дата или дата-время, к которой добавляются интервалы.DateилиDate32илиDateTimeилиDateTime64intervals— кортеж интервалов, которые добавляются кdatetime.Tuple(Interval)
Возвращаемое значение
Возвращает date с добавленными intervals: Date или Date32 или DateTime или DateTime64
Примеры
Добавление кортежа интервалов к дате
addWeeks
Добавлена в версии: v1.1
Добавляет указанное количество недель к дате, дате и времени или строковому представлению даты или даты и времени.
Синтаксис
Аргументы
datetime— Дата или дата и время, к которой нужно прибавить указанное количество недель.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество добавляемых недель.(U)Int*илиFloat*
Возвращаемое значение
Возвращает значение datetime, увеличенное на num недель, типа Date или Date32 или DateTime или DateTime64
Примеры
Добавление недель к разным типам дат
Использование альтернативного синтаксиса INTERVAL
addYears
Впервые представлена в: v1.1
Добавляет указанное количество лет к дате, дате и времени или строковому представлению даты или даты и времени.
Синтаксис
Аргументы
datetime— дата или дата со временем, к которой нужно добавить указанное количество лет.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество лет, которое нужно добавить.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime плюс num лет, в виде типов Date, Date32, DateTime или DateTime64
Примеры
Добавление лет к различным типам дат
Использование альтернативного синтаксиса INTERVAL
age
Добавлено в: v23.1
Возвращает компонент разности между startdate и enddate в заданной единице измерения.
Разность вычисляется с точностью до 1 наносекунды.
Например, разность между 2021-12-29 и 2022-01-01 составляет 3 дня для единицы «дни», 0 месяцев для единицы «месяцы» и 0 лет для единицы «годы».
Альтернативой функции age является функция dateDiff.
Синтаксис
Аргументы
unit— Тип интервала для результата.
| Единица | Допустимые значения |
|---|---|
| nanosecond | nanosecond, nanoseconds, ns |
| microsecond | microsecond, microseconds, us, u |
| millisecond | millisecond, milliseconds, ms |
| second | second, seconds, ss, s |
| minute | minute, minutes, mi, n |
| hour | hour, hours, hh, h |
| day | day, days, dd, d |
| week | week, weeks, wk, ww |
| month | month, months, mm, m |
| quarter | quarter, quarters, qq, q |
| year | year, years, yyyy, yy |
startdate— Первое значение времени, которое вычитается (вычитаемое).DateилиDate32илиDateTimeилиDateTime64enddate— Второе значение времени, из которого производится вычитание (уменьшаемое).DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный параметр. Название часового пояса. Если задан, применяется как кstartdate, так и кenddate. Если не задан, используются часовые поясаstartdateиenddate. Если они различаются, результат не определён.String
Возвращаемое значение
Возвращает разницу между enddate и startdate, выраженную в единицах unit. Int32
Примеры
Вычисление возраста в часах
Рассчитать возраст в различных единицах измерения
changeDay
Введена в версии: v24.7
Изменяет компонент дня в значении типа Date или DateTime.
Синтаксис
Аргументы
date_or_datetime— значение, которое нужно изменить.DateилиDate32илиDateTimeилиDateTime64value— новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, с изменённым значением дня. Date или Date32 или DateTime или DateTime64
Примеры
Пример использования
changeHour
Добавлена в: v24.7
Изменяет компонент часа в значении даты или даты-времени.
Синтаксис
Аргументы
date_or_datetime— Значение, которое требуется изменить.DateилиDate32илиDateTimeилиDateTime64value— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, с изменённой часовой компонентой. DateTime или DateTime64
Примеры
Пример использования
changeMinute
Добавлена в версии: v24.7
Изменяет минутный компонент значения типа date или date time.
Синтаксис
Аргументы
date_or_datetime— значение, которое нужно изменить.Date,Date32,DateTimeилиDateTime64value— новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, но с изменённой компонентой минут. DateTime или DateTime64
Примеры
Пример использования
changeMonth
Добавлена в версии: v24.7
Изменяет месяц в значении типа Date или DateTime.
Синтаксис
Аргументы
date_or_datetime— Значение, которое нужно изменить.DateилиDate32илиDateTimeилиDateTime64value— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, с изменённым значением месяца. Date или Date32 или DateTime или DateTime64
Примеры
Пример использования
changeSecond
Представлена в версии: v24.7
Изменяет компонент «секунды» в дате или дате и времени.
Синтаксис
Аргументы
date_or_datetime— значение для изменения.DateилиDate32илиDateTimeилиDateTime64value— новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, с изменённой компонентой секунд. DateTime или DateTime64
Примеры
Пример использования
changeYear
Появилась в: v24.7
Изменяет компонент года в значении типа Date или DateTime.
Синтаксис
Аргументы
date_or_datetime— значение, которое нужно изменить.DateилиDate32илиDateTimeилиDateTime64value— новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, но с изменённым компонентом года. Date или Date32 или DateTime или DateTime64
Примеры
Пример использования
dateDiff
Добавлено в: v23.4
Возвращает количество границ указанной единицы измерения unit, пересечённых между startdate и enddate.
Разница вычисляется с использованием относительных единиц. Например, разница между 2021-12-29 и 2022-01-01 составляет 3 дня для единицы day
(см. toRelativeDayNum), 1 месяц для единицы month (см. toRelativeMonthNum) и 1 год для единицы year
(см. toRelativeYearNum).
Если указана единица week, то dateDiff считает, что неделя начинается в понедельник.
Обратите внимание, что это поведение отличается от функции toWeek(), в которой неделя по умолчанию начинается в воскресенье.
В качестве альтернативы dateDiff см. функцию age.
Синтаксис
Псевдонимы: timestampDiff, TIMESTAMP_DIFF, DATE_DIFF, date_diff, timestamp_diff
Аргументы
unit— Тип единицы измерения интервала для результата.
| Unit | Возможные значения |
|---|---|
| nanosecond | nanosecond, nanoseconds, ns |
| microsecond | microsecond, microseconds, us, u |
| millisecond | millisecond, milliseconds, ms |
| second | second, seconds, ss, s |
| minute | minute, minutes, mi, n |
| hour | hour, hours, hh, h |
| day | day, days, dd, d |
| week | week, weeks, wk, ww |
| month | month, months, mm, m |
| quarter | quarter, quarters, qq, q |
| year | year, years, yyyy, yy |
startdate— Первое временное значение, вычитаемое из второго (вычитаемое).DateилиDate32илиDateTimeилиDateTime64enddate— Второе временное значение, из которого вычитают первое (уменьшаемое).DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный параметр. Название часового пояса. Если указан, он применяется кstartdateиenddate. Если не указан, используются часовые поясаstartdateиenddate. Если они различаются, результат не определён.String
Возвращаемое значение
Возвращает разницу между enddate и startdate, выраженную в unit. Int64
Примеры
Вычисление разницы между датами в часах
Вычисление разности дат в различных единицах
dateName
Впервые появилась в версии: v21.7
Возвращает указанную часть даты.
Возможные значения:
- 'year'
- 'quarter'
- 'month'
- 'week'
- 'dayofyear'
- 'day'
- 'weekday'
- 'hour'
- 'minute'
- 'second'
Синтаксис
Аргументы
date_part— Часть даты, которую нужно извлечь.Stringdatetime— Значение типа дата или дата-время.DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный параметр. Часовой пояс.String
Возвращаемое значение
Возвращает указанную часть даты. String
Примеры
Извлечение различных частей даты
dateTrunc
Добавлено в: v20.8
Усекает значение даты и времени до указанной части даты.
Синтаксис
Псевдонимы: DATE_TRUNC
Аргументы
unit— Тип интервала, до границы которого усекается результат. Возможные значения:nanosecond(только DateTime64),microsecond(только DateTime64),millisecond(только DateTime64),second,minute,hour,day,week,month,quarter,year.Stringdatetime— Дата и время.DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный параметр. Имя часового пояса для возвращаемого значения datetime. Если не указано, функция использует часовой пояс параметраdatetime.String
Возвращаемое значение
Возвращает усечённое значение даты и времени.
| Аргумент unit | Аргумент datetime | Тип возвращаемого значения |
|---|---|---|
| Year, Quarter, Month, Week | Date32 или DateTime64 или Date или DateTime | Date32 или Date |
| Day, Hour, Minute, Second | Date32, DateTime64, Date или DateTime | DateTime64 или DateTime |
| Millisecond, Microsecond, | Любой | DateTime64 |
| Nanosecond | с точностью (scale) 3, 6 или 9 |
Примеры
Усечение без указания часового пояса
Усечение по указанному часовому поясу
formatDateTime
Добавлено в: v1.1
Форматирует дату или дату со временем в соответствии с указанной строкой формата. format является константным выражением, поэтому вы не можете использовать несколько форматов для одного результирующего столбца.
formatDateTime использует стиль формата даты/времени MySQL, см. документацию MySQL.
Обратной операцией к этой функции является parseDateTime.
Используя поля подстановки, вы можете задать шаблон для результирующей строки.
Пример столбца в таблице ниже показывает результат форматирования для 2018-01-02 22:33:44.
Поля подстановки:
| Placeholder | Description | Example |
|---|---|---|
| %a | сокращённое название дня недели (Mon-Sun) | Mon |
| %b | сокращённое название месяца (Jan-Dec) | Jan |
| %c | месяц как целое число (01-12) | 01 |
| %C | год, делённый на 100 и усечённый до целого (00-99) | 20 |
| %d | день месяца с ведущим нулём (01-31) | 02 |
| %D | короткий формат даты MM/DD/YY, эквивалент %m/%d/%y | 01/02/18 |
| %e | день месяца с ведущим пробелом (1-31) | 2 |
| %f | дробная часть секунды | 123456 |
| %F | короткий формат даты YYYY-MM-DD, эквивалент %Y-%m-%d | 2018-01-02 |
| %g | формат года двумя цифрами, согласованный с ISO 8601 | 18 |
| %G | четырёхзначный формат года для ISO-номера недели | 2018 |
| %h | час в 12-часовом формате (01-12) | 09 |
| %H | час в 24-часовом формате (00-23) | 22 |
| %i | минуты (00-59) | 33 |
| %I | час в 12-часовом формате (01-12) | 10 |
| %j | день года (001-366) | 002 |
| %k | час в 24-часовом формате (00-23) | 14 |
| %l | час в 12-часовом формате (01-12) | 09 |
| %m | месяц как целое число (01-12) | 01 |
| %M | полное название месяца (January-December) | January |
| %n | символ перевода строки | |
| %p | обозначение AM или PM | PM |
| %Q | квартал (1-4) | 1 |
| %r | 12-часовое время HH:MM AM/PM, эквивалент %h:%i %p | 10:30 PM |
| %R | 24-часовое время HH:MM, эквивалент %H:%i | 22:33 |
| %s | секунды (00-59) | 44 |
| %S | секунды (00-59) | 44 |
| %t | символ горизонтальной табуляции | |
| %T | формат времени ISO 8601 (HH:MM:SS), эквивалент %H:%i:%S | 22:33:44 |
| %u | день недели ISO 8601 как число, где понедельник — 1 (1-7) | 2 |
| %V | номер недели ISO 8601 (01-53) | 01 |
| %w | день недели как целое число, где воскресенье — 0 (0-6) | 2 |
| %W | полное название дня недели (Monday-Sunday) | Monday |
| %y | год, две последние цифры (00-99) | 18 |
| %Y | год | 2018 |
| %z | смещение от UTC в виде +HHMM или -HHMM | -0500 |
| %% | символ % | % |
- В версиях ClickHouse до v23.4
%fвыводит один ноль (0), если форматируемое значение имеет тип Date, Date32 или DateTime (которые не имеют дробных секунд), либо тип DateTime64 с точностью 0. - В версиях ClickHouse до v25.1
%fвыводит столько цифр, сколько задано масштабом (scale) DateTime64, вместо фиксированных 6 цифр. - В версиях ClickHouse до v23.4
%Mвыводит минуты (00-59) вместо полного названия месяца (January-December).
Синтаксис
Синонимы: DATE_FORMAT
Аргументы
datetime— Дата или дата и время для форматирования.DateилиDate32илиDateTimeилиDateTime64format— Строка формата с полями подстановки.Stringtimezone— Необязательный параметр. Имя часового пояса для форматируемого времени.String
Возвращаемое значение
Возвращает значения даты и времени в соответствии с указанным форматом. String
Примеры
Форматирование даты с подстановкой для года
Форматирование значений DateTime64 с дробными секундами
Формат с часовым поясом
formatDateTimeInJodaSyntax
Добавлена в версии: v20.1
Аналогична formatDateTime, за исключением того, что форматирует дату и время в стиле Joda вместо стиля MySQL. См. документацию Joda Time.
Обратной операцией для этой функции является parseDateTimeInJodaSyntax.
Используя подстановочные поля, вы можете задать шаблон для результирующей строки.
Подстановочные поля:
| Placeholder | Описание | Представление | Примеры |
|---|---|---|---|
| G | эра | текст | AD |
| C | век эры (>=0) | число | 20 |
| Y | год эры (>=0) | год | 1996 |
| x | weekyear (пока не поддерживается) | год | 1996 |
| w | номер недели в weekyear (пока не поддерживается) | число | 27 |
| e | день недели | число | 2 |
| E | день недели | текст | Tuesday; Tue |
| y | год | год | 1996 |
| D | день года | число | 189 |
| M | месяц года | месяц | July; Jul; 07 |
| d | день месяца | число | 10 |
| a | половина дня | текст | PM |
| K | час в пределах половины дня (0~11) | число | 0 |
| h | час в пределах половины дня (1~12) | число | 12 |
| H | час дня (0~23) | число | 0 |
| k | час дня (1~24) | число | 24 |
| m | минута часа | число | 30 |
| s | секунда минуты | число | 55 |
| S | доля секунды | число | 978 |
| z | часовой пояс | текст | Eastern Standard Time; EST |
| Z | смещение часового пояса | зона | -0800; -0812 |
| ' | экранирование текста | разделитель | |
| '' | одинарная кавычка | литерал | ' |
Синтаксис
Аргументы
datetime— Дата или дата и время для форматирования.DateTimeилиDateилиDate32илиDateTime64format— Строка формата с полями подстановки в стиле Joda.Stringtimezone— Необязательный аргумент. Имя часового пояса для форматируемого времени.String
Возвращаемое значение
Возвращает значения даты и времени в соответствии с заданным форматом. String
Примеры
Форматирование даты и времени с использованием синтаксиса Joda
fromDaysSinceYearZero
Впервые появилась в: v23.11
Для заданного количества дней, прошедшего с 1 января 0000 года, возвращает соответствующую дату в пролептическом григорианском календаре, определённом ISO 8601.
Вычисление аналогично функции MySQL FROM_DAYS(). Результат не определён, если его невозможно представить в пределах типа Date.
Синтаксис
Псевдонимы: FROM_DAYS
Аргументы
days— число дней, прошедших с нулевого года.UInt32
Возвращаемое значение
Возвращает дату, соответствующую числу дней, прошедших с нулевого года. Date
Примеры
Преобразование числа дней с нулевого года в даты
fromDaysSinceYearZero32
Добавлена в версии: v23.11
Для заданного количества дней, прошедших с 1 января 0000 года, возвращает соответствующую дату в пролептическом григорианском календаре, определённом ISO 8601.
Расчёт выполняется аналогично функции MySQL FROM_DAYS(). Результат не определён, если его нельзя представить в пределах типа Date32.
Синтаксис
Аргументы
days— число дней, прошедших с нулевого года.UInt32
Возвращаемое значение
Возвращает дату, соответствующую числу дней, прошедших с нулевого года. Date32
Примеры
Преобразование числа дней, прошедших с нулевого года, в даты
fromModifiedJulianDay
Появилась в: v21.1
Преобразует число модифицированной юлианской даты в дату в пролептическом григорианском календаре в текстовой форме YYYY-MM-DD. Эта функция поддерживает значения дня от -678941 до 2973483 (которые представляют 0000-01-01 и 9999-12-31 соответственно). Она выбрасывает исключение, если значение дня выходит за пределы поддерживаемого диапазона.
Синтаксис
Аргументы
day— номер модифицированного юлианского дня (Modified Julian Day).(U)Int*
Возвращаемое значение
Возвращает дату в текстовом виде. String
Примеры
Преобразование модифицированного юлианского дня в дату
fromModifiedJulianDayOrNull
Впервые добавлена в: v21.1
Аналогична fromModifiedJulianDay(), но вместо генерации исключений возвращает NULL.
Синтаксис
Аргументы
day— номер модифицированного юлианского дня (Modified Julian Day).(U)Int*
Возвращаемое значение
Возвращает дату в текстовом формате для допустимого аргумента day, иначе null. Nullable(String)
Примеры
Преобразование номера модифицированного юлианского дня в дату с обработкой null
fromUTCTimestamp
Введена в: v22.1
Преобразует значение даты или даты и времени из часового пояса UTC в значение даты или даты и времени в указанном часовом поясе. Эта функция в основном предоставляется для совместимости с Apache Spark и аналогичными фреймворками.
Синтаксис
Псевдонимы: from_utc_timestamp
Аргументы
datetime— константное значение даты или даты и времени либо выражение.DateTimeилиDateTime64time_zone— константное строковое значение или выражение, представляющее часовой пояс.String
Возвращаемое значение
Возвращает значение типов DateTime/DateTime64 в указанном часовом поясе. DateTime или DateTime64
Примеры
Преобразование времени из часового пояса UTC в указанный часовой пояс
fromUnixTimestamp
Введена в версии v20.8
Эта функция преобразует Unix-временную метку в календарную дату и время суток.
Её можно вызывать двумя способами:
- Если передан один аргумент типа
Integer, функция возвращает значение типаDateTime, т.е. ведёт себя какtoDateTime. - Если переданы два или три аргумента, где первый аргумент — значение типа
Integer,Date,Date32,DateTimeилиDateTime64, второй аргумент — константная строка формата, а третий аргумент — необязательная константная строка часового пояса, функция возвращает значение типаString, т.е. ведёт себя какformatDateTime. В этом случае используется стиль формата даты и времени MySQL.
Синтаксис
Псевдонимы: FROM_UNIXTIME
Аргументы
timestamp— метка времени Unix или значение даты/даты со временем.(U)Int*илиDateилиDate32илиDateTimeилиDateTime64format— необязательный аргумент. Константная строка формата для форматирования вывода.Stringtimezone— необязательный аргумент. Константная строка часового пояса.String
Возвращаемое значение
При вызове с одним аргументом возвращает DateTime для timestamp, при вызове с двумя или тремя аргументами — строку (String). DateTime или String
Примеры
Преобразование метки времени Unix в DateTime
Преобразование Unix-метки времени с указанием формата
fromUnixTimestampInJodaSyntax
Добавлена в: v23.1
Эта функция преобразует Unix-временную метку в календарную дату и время суток.
Её можно вызывать двумя способами:
Если передан один аргумент типа Integer, она возвращает значение типа DateTime, то есть ведёт себя как toDateTime.
Если передано два или три аргумента, где первый аргумент — значение типа Integer, Date, Date32, DateTime или DateTime64, второй аргумент — константная строка формата, а третий аргумент — необязательная константная строка часового пояса, функция возвращает значение типа String, то есть ведёт себя как formatDateTimeInJodaSyntax. В этом случае используется стиль формата даты и времени Joda.
Синтаксис
Аргументы
timestamp— Unix‑метка времени или значение даты/времени.(U)Int*илиDateилиDate32илиDateTimeилиDateTime64format— Необязательный параметр. Константная строка формата в синтаксисе Joda для форматирования вывода.Stringtimezone— Необязательный параметр. Константная строка часового пояса.String
Возвращаемое значение
Возвращает дату и время при вызове с одним аргументом или строку при вызове с двумя или тремя аргументами.} DateTime или String
Примеры
Преобразование Unix‑метки времени с использованием формата Joda
makeDate
Добавлена в версии: v22.6
Создаёт значение типа Date из:
- года, месяца и дня;
- года и номера дня в году.
Синтаксис
Аргументы
year— Год.(U)Int*илиFloat*илиDecimalmonth— Месяц (1-12).(U)Int*илиFloat*илиDecimalday— День месяца (1-31).(U)Int*илиFloat*илиDecimalday_of_year— Порядковый номер дня в году (1-365).(U)Int*илиFloat*илиDecimal
Возвращаемое значение
Возвращает значение типа Date, сформированное из переданных аргументов.
Примеры
Дата из года, месяца и дня
Дата по году и номеру дня в году
makeDate32
Добавлена в версии: v22.6
Создаёт значение типа Date32 из одного из следующих наборов аргументов:
- год, месяц и день
- год и порядковый номер дня в году
Синтаксис
Аргументы
year— номер года.(U)Int*илиFloat*илиDecimalmonth— номер месяца (1–12).(U)Int*илиFloat*илиDecimalday— день месяца (1–31).(U)Int*илиFloat*илиDecimalday_of_year— день года (1–365).(U)Int*илиFloat*илиDecimal
Возвращаемое значение
Возвращает значение типа Date32, сформированное из переданных аргументов Date32
Примеры
Date32 из значений года, месяца и дня
Date32 из года и номера дня в году
makeDateTime
Введена в версии: v22.6
Создаёт значение типа DateTime из года, месяца, дня, часа, минуты и секунды с необязательным указанием часового пояса.
Синтаксис
Аргументы
year— Год.(U)Int*илиFloat*илиDecimalmonth— Месяц (1–12).(U)Int*илиFloat*илиDecimalday— День месяца (1–31).(U)Int*илиFloat*илиDecimalhour— Час (0–23).(U)Int*илиFloat*илиDecimalminute— Минута (0–59).(U)Int*илиFloat*илиDecimalsecond— Секунда (0–59).(U)Int*илиFloat*илиDecimaltimezone— Название часового пояса.String
Возвращаемое значение
Возвращает значение DateTime, сформированное из переданных аргументов DateTime
Примеры
DateTime из year, month, day, hour, minute, second
makeDateTime64
Впервые представлена в: v22.6
Создаёт значение типа DateTime64 из года, месяца, дня, часа, минуты, секунды, с необязательной дробной частью, точностью и часовым поясом.
Синтаксис
Аргументы
year— Год.(U)Int*илиFloat*илиDecimalmonth— Номер месяца (1–12).(U)Int*илиFloat*илиDecimalday— День месяца (1–31).(U)Int*илиFloat*илиDecimalhour— Час (0–23).(U)Int*илиFloat*илиDecimalminute— Минута (0–59).(U)Int*илиFloat*илиDecimalsecond— Секунда (0–59).(U)Int*илиFloat*илиDecimalfraction— Дробная часть секунды.(U)Int*илиFloat*илиDecimalprecision— Точность дробной части (0–9).UInt8timezone— Название часового пояса.String
Возвращаемое значение
Возвращает значение DateTime64, сформированное из переданных аргументов DateTime64
Примеры
DateTime64 из year, month, day, hour, minute, second
monthName
Добавлена в версии v22.1
Возвращает название месяца в виде строки для значения даты или даты со временем.
Синтаксис
Аргументы
datetime— дата или дата и время.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает название месяца. String
Примеры
Получение названия месяца из даты
now
Введена в версии v1.1
Возвращает текущие дату и время на момент анализа запроса. Функция является константным выражением.
Синтаксис
Псевдонимы: current_timestamp
Аргументы
timezone— Необязательный параметр. Название часового пояса для возвращаемого значения.String
Возвращаемое значение
Возвращает текущие дату и время. DateTime
Примеры
Запрос без часового пояса
Запрос с заданным часовым поясом
now64
Введена в версии: v20.1
Возвращает текущие дату и время с точностью до долей секунды на момент анализа запроса. Функция является константным выражением.
Синтаксис
Аргументы
scale— Необязательный параметр. Размер тика (точность): 10^-precision секунд. Допустимый диапазон: [0 : 9]. Обычно используются значения — 3 (по умолчанию) (миллисекунды), 6 (микросекунды), 9 (наносекунды).UInt8timezone— Необязательный параметр. Название часового пояса для возвращаемого значения.String
Возвращаемое значение
Возвращает текущие дату и время с субсекундной точностью. DateTime64
Примеры
Запрос с точностью по умолчанию и с пользовательской точностью
nowInBlock
Добавлена в версии: v22.8
Возвращает текущие дату и время на момент обработки каждого блока данных. В отличие от функции now, не является константным выражением, и возвращаемое значение будет отличаться в разных блоках для долго выполняющихся запросов.
Эту функцию имеет смысл использовать для генерации текущего времени в долго выполняющихся запросах INSERT SELECT.
Синтаксис
Аргументы
timezone— необязательный параметр. Название часового пояса для возвращаемого значения.String
Возвращаемое значение
Возвращает текущие дату и время в момент обработки каждого блока данных. DateTime
Примеры
Отличие от функции now()
nowInBlock64
Добавлена в: v25.8
Возвращает текущие дату и время в момент обработки каждого блока данных в миллисекундах. В отличие от функции now64, не является константным выражением, и возвращаемое значение будет отличаться в разных блоках для длительных запросов.
Эту функцию имеет смысл использовать для генерации текущего времени в длительных запросах INSERT SELECT.
Синтаксис
Аргументы
scale— необязательный. Размер тика (точность): 10^-scale секунды. Допустимый диапазон: [0 : 9]. Как правило, используются значения 3 (по умолчанию) (миллисекунды), 6 (микросекунды), 9 (наносекунды).UInt8timezone— необязательный. Имя часового пояса для возвращаемого значения.String
Возвращаемое значение
Возвращает текущие дату и время на момент обработки каждого блока данных с субсекундной точностью. DateTime64
Примеры
Отличие от функции now64()
serverTimezone
Появилась в версии v23.6
Возвращает часовой пояс сервера, то есть значение настройки timezone.
Если функция выполняется в контексте distributed таблицы, то она генерирует обычный столбец со значениями, соответствующими каждому сегменту. В противном случае возвращается константное значение.
Синтаксис
Псевдонимы: serverTimeZone
Аргументы
- Нет.
Возвращаемое значение
Возвращает часовой пояс сервера в виде String.
Примеры
Пример использования
subDate
Добавлена в версии: v23.9
Вычитает интервал времени из переданной даты, даты и времени или их строкового представления. Если в результате вычитания значение выходит за пределы допустимого диапазона типа данных, результат не определён.
Синтаксис
Аргументы
datetime— Дата или дата и время, из которой вычитаетсяinterval.DateилиDate32илиDateTimeилиDateTime64interval— Интервал, который нужно вычесть.Interval
Возвращаемое значение
Возвращает дату или дату и время, полученную вычитанием interval из datetime. Date или Date32 или DateTime или DateTime64
Примеры
Вычитание интервала из даты
subtractDays
Представлена начиная с версии v1.1
Вычитает указанное количество дней из даты, даты со временем или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой нужно вычесть заданное количество дней.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество дней, которое нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime минус num дней. Тип результата: Date или Date32 или DateTime или DateTime64.
Примеры
Вычитание дней из разных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractHours
Добавлена в версии: v1.1
Вычитает заданное количество часов из даты, даты и времени или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой нужно вычесть указанное количество часов.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество часов, на которое нужно уменьшить значениеdatetime.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, уменьшенное на num часов. DateTime или DateTime64(3)
Примеры
Вычитание часов из значений разных типов даты
Использование альтернативного синтаксиса для INTERVAL
subtractInterval
Введена в версии v22.11
Добавляет отрицательный интервал к другому интервалу или к кортежу интервалов.
Примечание: интервалы одного типа будут объединены в один интервал. Например, если переданы toIntervalDay(2) и toIntervalDay(1),
то результатом будет (1), а не (2,1).
Синтаксис
Аргументы
interval_1— Первый интервал или кортеж интервалов.IntervalилиTuple(Interval)interval_2— Второй интервал, который берётся с противоположным знаком.Interval
Возвращаемое значение
Возвращает кортеж интервалов Tuple(T)
Примеры
Вычитание интервалов
subtractMicroseconds
Добавлена в версии: v22.6
Вычитает указанное количество микросекунд из значения типа «дата и время» или его строкового представления.
Синтаксис
Аргументы
datetime— дата и время, из которых вычитается указанное количество микросекунд.DateTimeилиDateTime64илиStringnum— количество микросекунд для вычитания.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime минус num микросекунд в виде DateTime64
Примеры
Вычитание микросекунд из различных типов даты и времени
Использование альтернативного синтаксиса INTERVAL
subtractMilliseconds
Введена в версии v22.6.
Вычитает указанное количество миллисекунд из значения типа «дата и время» или даты и времени в строковом формате.
Синтаксис
Аргументы
datetime— дата и время, из которых нужно вычесть указанное количество миллисекунд.DateTimeилиDateTime64илиStringnum— количество миллисекунд, которое нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime минус num миллисекунд в виде DateTime64
Примеры
Вычитание миллисекунд из разных типов даты и времени
Использование альтернативного синтаксиса INTERVAL
subtractMinutes
Добавлена в версии v1.1
Вычитает указанное количество минут из даты, даты и времени или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой нужно вычесть указанное количество минут.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество минут, которые нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime минус num минут в виде DateTime или DateTime64(3)
Примеры
Вычитание минут из разных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractMonths
Впервые появилась в версии: v1.1
Вычитает указанное количество месяцев из даты, даты и времени или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой вычитается указанное количество месяцев.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество месяцев, которое нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Результат — datetime минус num месяцев. Тип: Date или Date32 или DateTime или DateTime64
Примеры
Вычитание месяцев из разных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractNanoseconds
Появилась в версии: v20.1
Вычитает указанное количество наносекунд из значения даты и времени или строкового представления даты и времени.
Синтаксис
Аргументы
datetime— Дата и время, из которых нужно вычесть указанное количество наносекунд.DateTimeилиDateTime64илиStringnum— Количество наносекунд для вычитания.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime, уменьшенное на num наносекунд, в виде DateTime64
Примеры
Вычитание наносекунд из значений разных типов даты и времени
Использование альтернативного синтаксиса INTERVAL
subtractQuarters
Введена в версии: v20.1
Вычитает указанное количество кварталов из даты, даты со временем или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой вычитается указанное количество кварталов.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество кварталов, которое нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Возвращает значение datetime минус num кварталов типа Date или Date32 или DateTime или DateTime64
Примеры
Вычитание кварталов из дат разных типов
Использование альтернативного синтаксиса INTERVAL
subtractSeconds
Добавлена в: v1.1
Вычитает заданное количество секунд из даты, даты со временем или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата и время, из которой вычитается указанное количество секунд.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество секунд, которое нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime минус num секунд — значение типа DateTime или DateTime64(3)
Примеры
Вычитание секунд из значений разных типов даты и времени
Использование альтернативного синтаксиса для INTERVAL
subtractTupleOfIntervals
Введена в версии: v22.11
Последовательно вычитает кортеж интервалов из даты или даты со временем.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой нужно вычесть интервалы.DateилиDate32илиDateTimeилиDateTime64intervals— кортеж интервалов, вычитаемых изdatetime.Tuple(Interval)
Возвращаемое значение
Возвращает date с вычтенными intervals типа Date или Date32 или DateTime или DateTime64
Примеры
Вычитание кортежа интервалов из даты
subtractWeeks
Добавлена в версии: v1.1
Вычитает заданное количество недель из даты, даты со временем или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой нужно вычесть указанное количество недель.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество недель, которое нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime минус num недель, типа Date или Date32 или DateTime или DateTime64
Примеры
Вычитание недель из разных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractYears
Добавлено в: v1.1
Вычитает заданное количество лет из даты, даты и времени или их строкового представления.
Синтаксис
Аргументы
datetime— дата или дата со временем, из которой нужно вычесть заданное количество лет.DateилиDate32илиDateTimeилиDateTime64илиStringnum— количество лет, которое нужно вычесть.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime минус num лет, типа Date, Date32, DateTime или DateTime64.
Примеры
Вычитание лет для разных типов дат
Использование альтернативного синтаксиса INTERVAL
timeDiff
Добавлена в версии v23.4
Возвращает разницу в секундах между двумя датами или значениями даты и времени.
Разница вычисляется как enddate - startdate.
Эта функция эквивалентна dateDiff('second', startdate, enddate).
Для вычисления разницы во времени в других единицах измерения (часах, днях, месяцах и т. д.) используйте функцию dateDiff.
Синтаксис
Аргументы
startdate— первое значение времени, которое вычитается (вычитаемое).DateилиDate32илиDateTimeилиDateTime64enddate— второе значение времени, из которого вычитают (уменьшаемое).DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает разность между enddate и startdate, выраженную в секундах. Int64
Примеры
Вычисление разницы во времени в секундах
Вычислить разницу во времени и преобразовать в часы
Эквивалентна dateDiff в секундах
timeSlot
Введена в: v1.1
Округляет время до начала получасового интервала.
Хотя эта функция может принимать в качестве аргумента значения расширенных типов Date32 и DateTime64,
передача ей времени вне стандартного диапазона значений (с 1970 по 2149 год для Date / 2106 для DateTime) приведёт к неверным результатам.
Синтаксис
Аргументы
time— Время, которое нужно округлить до начала интервала продолжительностью 30 минут.DateTimeилиDate32илиDateTime64time_zone— Необязательный параметр. Константное значение типа String или выражение, задающее часовой пояс.String
Возвращаемое значение
Возвращает время, округлённое до начала интервала продолжительностью 30 минут. DateTime
Примеры
Округление времени до 30-минутного интервала
timeSlots
Появилась в версии v1.1
Для временного интервала, начинающегося в StartTime и продолжающегося в течение Duration секунд, возвращает массив моментов времени, состоящий из точек этого интервала, округлённых вниз до Size в секундах. Параметр Size является необязательным и по умолчанию равен 1800 (30 минут).
Это может понадобиться, например, при поиске просмотров страниц в соответствующей сессии.
Для DateTime64 масштаб возвращаемого значения может отличаться от масштаба StartTime. Берётся наибольший масштаб среди всех переданных аргументов.
Синтаксис
Аргументы
StartTime— начальное время интервала.DateTimeилиDateTime64Duration— длительность интервала в секундах.UInt32илиDateTime64Size— необязательный параметр. Размер временных слотов в секундах. Значение по умолчанию — 1800 (30 минут).UInt32илиDateTime64
Возвращаемое значение
Возвращает массив значений типов DateTime/DateTime64 (тип возвращаемого значения соответствует типу StartTime). Для DateTime64 масштаб возвращаемого значения может отличаться от масштаба StartTime — выбирается максимальный масштаб среди всех заданных аргументов. Array(DateTime) или Array(DateTime64)
Примеры
Создание временных слотов для интервала
timestamp
Добавлена в версии: v23.9
Преобразует первый аргумент expr к типу DateTime64(6).
Если указан второй аргумент expr_time, к преобразованному значению добавляется указанное время.
Синтаксис
Аргументы
expr— дата или дата и время.Stringexpr_time— необязательный параметр. Время, добавляемое к преобразованному значению.String
Возвращаемое значение
Возвращает преобразованное значение expr или expr с добавленным временем в формате DateTime64(6)
Примеры
Преобразование строки с датой в DateTime64(6)
Добавление времени к строке даты
timezone
Введена в версии: v21.4
Возвращает имя часового пояса текущей сессии или преобразует смещение или имя часового пояса в каноническое имя часового пояса.
Синтаксис
Псевдонимы: timeZone
Аргументы
- Нет аргументов.
Возвращаемое значение
Возвращает каноническое имя часового пояса в виде значения типа String.
Примеры
Пример использования
timezoneOf
Впервые появилась в версии v21.4
Возвращает имя часового пояса значения типа DateTime или DateTime64.
Синтаксис
Псевдонимы: timeZoneOf
Аргументы
datetime— значение типаDateTimeилиDateTime64timezone— необязательный параметр. Имя часового пояса, в который нужно преобразовать часовой пояс значенияdatetime.String
Возвращаемое значение
Возвращает имя часового пояса для datetime в формате String
Примеры
Пример использования
timezoneOffset
Впервые добавлена в: v21.6
Функция возвращает смещение часового пояса в секундах относительно UTC. Функция учитывает переход на летнее время и исторические изменения часовых поясов по состоянию на указанную дату и время.
Синтаксис
Псевдонимы: timeZoneOffset
Аргументы
datetime— значение типаDateTime, для которого нужно получить смещение часового пояса.DateTimeилиDateTime64
Возвращаемое значение
Возвращает смещение относительно UTC в секундах Int32
Примеры
Пример использования
toDayOfMonth
Впервые представлена в: v1.1
Возвращает номер дня месяца (1–31) для значения типа Date или DateTime.
Синтаксис
Псевдонимы: DAY, DAYOFMONTH
Аргументы
datetime— дата или дата со временем, из которой извлекается день месяца.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает день месяца для указанной даты/времени UInt8
Примеры
Пример использования
toDayOfWeek
Введена в версии: v1.1
Возвращает номер дня недели для значения типа Date или DateTime.
Двухаргументная форма toDayOfWeek() позволяет указать, начинается ли неделя с понедельника или воскресенья,
а также должен ли возвращаемый результат находиться в диапазоне от 0 до 6 или от 1 до 7.
| Mode | First day of week | Range |
|---|---|---|
| 0 | Monday | 1–7: понедельник = 1, вторник = 2, ..., воскресенье = 7 |
| 1 | Monday | 0–6: понедельник = 0, вторник = 1, ..., воскресенье = 6 |
| 2 | Sunday | 0–6: воскресенье = 0, понедельник = 1, ..., суббота = 6 |
| 3 | Sunday | 1–7: воскресенье = 1, понедельник = 2, ..., суббота = 7 |
Синтаксис
Псевдонимы: DAYOFWEEK
Аргументы
datetime— Дата или дата со временем, из которой нужно получить день недели.DateилиDate32илиDateTimeилиDateTime64mode— Необязательный параметр. Целое число, определяющее режим недели (0–3). По умолчанию — 0, если параметр не задан.UInt8timezone— Необязательный параметр. Часовой пояс, используемый для преобразования.String
Возвращаемое значение
Возвращает день недели для заданных Date или DateTime в виде значения типа UInt8.
Примеры
Пример использования
toDayOfYear
Добавлена в версии: v18.4
Возвращает номер дня в пределах года (1–366) для значения типа Date или DateTime.
Синтаксис
Псевдонимы: DAYOFYEAR
Аргументы
datetime— дата или дата и время, для которой нужно получить номер дня года.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает номер дня года для указанного значения Date или DateTime в формате UInt16
Примеры
Пример использования
toDaysSinceYearZero
Добавлено в версии: v23.9
Для заданной даты возвращает количество дней, прошедших с 1 января 0000 в пролептическом григорианском календаре, определённом ISO 8601.
Расчёт выполняется так же, как и в функции MySQL TO_DAYS.
Синтаксис
Псевдонимы: TO_DAYS
Аргументы
date— Дата или дата и время, для которой требуется вычислить количество дней, прошедших с нулевого года.DateилиDate32илиDateTimeилиDateTime64time_zone— Часовой пояс.String
Возвращаемое значение
Возвращает количество дней, прошедших с даты 0000-01-01. UInt32
Примеры
Вычисление количества дней, прошедших с нулевого года
toHour
Введена в: v1.1
Возвращает часовую часть (0–23) значения типа DateTime или DateTime64.
Синтаксис
Псевдонимы: HOUR
Аргументы
datetime— Дата и время, из которых нужно извлечь час.DateTimeилиDateTime64
Возвращаемое значение
Возвращает час (0–23) из datetime. UInt8
Примеры
Пример использования
toISOWeek
Введена в версии v20.1
Возвращает номер недели по ISO для даты или даты со временем.
Это функция совместимости, эквивалентная toWeek(date, 3).
ISO‑недели начинаются с понедельника, а первая неделя года — это неделя, содержащая 4 января.
Согласно ISO 8601, номера недель находятся в диапазоне от 1 до 53.
Обратите внимание, что даты, близкие к началу или концу года, могут возвращать номер недели из предыдущего или следующего года. Например, 29 декабря 2025 года вернёт номер недели 1, потому что эта дата попадает в первую неделю, которая содержит 4 января 2026 года.
Синтаксис
Аргументы
datetime— дата или дата и время, для которой нужно получить номер ISO-недели.DateилиDateTimeилиDate32илиDateTime64timezone— необязательный параметр. Часовой пояс.String
Возвращаемое значение
Возвращает номер недели по стандарту ISO 8601. Возвращает число от 1 до 53. UInt8
Примеры
Получение номеров ISO-недель
ISO‑неделя может относиться к другому году
toISOYear
Добавлена в версии: v18.4
Преобразует дату или дату со временем в номер года в формате ISO.
Синтаксис
Аргументы
datetime— Значение с датой или датой и временем.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает входное значение, преобразованное в номер года по ISO. UInt16
Примеры
Получение ISO-года из значений дат
toLastDayOfMonth
Впервые представлена в v1.1
Округляет дату или дату со временем до последнего дня месяца.
Тип возвращаемого значения можно настроить с помощью enable_extended_results_for_datetime_functions.
Синтаксис
Псевдонимы: LAST_DAY
Аргументы
value— дата или дата и время, которые необходимо округлить до последнего дня месяца.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает дату последнего дня месяца для заданной даты или даты и времени. Date
Примеры
Округление до последнего дня месяца
toLastDayOfWeek
Функция появилась в версии: v23.5
Округляет дату или дату-время до ближайшей субботы или воскресенья.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
datetime— дата или дата и время для преобразования.DateилиDateTimeилиDate32илиDateTime64mode— определяет первый день недели, как описано в функцииtoWeek(). Значение по умолчанию —0.UInt8timezone— необязательный параметр. Часовой пояс, используемый для преобразования. Если не указан, используется часовой пояс сервера.String
Возвращаемое значение
Возвращает дату ближайшей субботы или воскресенья (в ту же дату или позже), в зависимости от режима. Date или Date32 или DateTime или DateTime64
Примеры
Округление вверх до ближайшей субботы или воскресенья
toMillisecond
Появилась в версии: v24.2
Возвращает часть значения типов DateTime или DateTime64, соответствующую миллисекундам (0–999).
Синтаксис
Псевдонимы: MILLISECOND
Аргументы
datetime— дата и время, из которых нужно получить миллисекунду.DateTimeилиDateTime64
Возвращаемое значение
Возвращает миллисекунду в минуте (0–59) для datetime. UInt16
Примеры
Пример использования
toMinute
Введена в версии: v1.1
Возвращает минутную часть (0–59) значения типа Date или DateTime.
Синтаксис
Псевдонимы: MINUTE
Аргументы
datetime— Дата и время, из которых нужно извлечь минуту.DateTimeилиDateTime64
Возвращаемое значение
Возвращает минуту часа (0–59) из datetime. UInt8
Примеры
Пример использования
toModifiedJulianDay
Добавлена в: v21.1
Преобразует дату в пролептическом григорианском календаре (Proleptic Gregorian calendar) в текстовом формате YYYY-MM-DD в число Modified Julian Day типа Int32. Эта функция поддерживает даты с 0000-01-01 по 9999-12-31. Вызывает исключение, если аргумент не может быть интерпретирован как дата или дата некорректна.
Синтаксис
Аргументы
date— Дата в виде строки.StringилиFixedString
Возвращаемое значение
Возвращает число модифицированного юлианского дня. Int32
Примеры
Преобразование даты в число модифицированного юлианского дня
toModifiedJulianDayOrNull
Добавлена в версии: v21.1
Аналогична toModifiedJulianDay(), но вместо генерации исключений возвращает NULL.
Синтаксис
Аргументы
date— дата в текстовом формате.StringилиFixedString
Возвращаемое значение
Возвращает номер модифицированного юлианского дня для допустимого значения date, в противном случае — null. Nullable(Int32)
Примеры
Преобразование даты в номер модифицированного юлианского дня с обработкой null
toMonday
Добавлена в версии: v1.1
Округляет значение типа дата или дата со временем вниз до понедельника той же недели. Возвращает дату.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
value— дата или дата со временем, которую нужно округлить вниз до понедельника соответствующей недели.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает дату понедельника той же недели для заданной даты или даты со временем. Date
Примеры
Округление вниз до понедельника той же недели
toMonth
Впервые добавлена в версии: v1.1
Возвращает номер месяца (1–12) из значения типа Date или DateTime.
Синтаксис
Псевдонимы: MONTH
Аргументы
datetime— дата или дата и время, из которой нужно получить месяц.Date,Date32,DateTimeилиDateTime64
Возвращаемое значение
Возвращает месяц указанной даты/времени в виде значения типа UInt8.
Примеры
Пример использования
toMonthNumSinceEpoch
Впервые представлена в версии v25.3
Возвращает количество месяцев, прошедших с 1970 года
Синтаксис
Аргументы
date— дата или дата и время.DateилиDateTimeилиDateTime64
Возвращаемое значение
Положительное целое число
Примеры
Пример
toQuarter
Введена в версии: v1.1
Возвращает квартал года (1–4) для заданного значения типа Date или DateTime.
Синтаксис
Псевдонимы: QUARTER
Аргументы
datetime— дата или дата и время, для которой вычисляется квартал года.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает номер квартала года для заданных даты/времени типа UInt8
Примеры
Пример использования
toRelativeDayNum
Введена в версии: v1.1
Преобразует дату или дату со временем в количество дней, прошедших с некоторого фиксированного момента в прошлом.
Точная опорная точка времени является деталью реализации, поэтому эта функция не предназначена для самостоятельного использования.
Основное назначение функции — вычисление разницы в днях между двумя датами или датами со временем, например: toRelativeDayNum(dt1) - toRelativeDayNum(dt2).
Синтаксис
Аргументы
date— дата или дата со временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает количество дней, прошедших с фиксированной опорной даты в прошлом. UInt32
Примеры
Получение относительных номеров дня
toRelativeHourNum
Добавлена в: v1.1
Преобразует дату или дату со временем в количество часов, прошедших с некоторого фиксированного момента в прошлом.
Точная точка во времени — деталь реализации, поэтому эта функция не предназначена для самостоятельного использования.
Основное назначение функции — вычисление разницы в часах между двумя датами или датами со временем, например, toRelativeHourNum(dt1) - toRelativeHourNum(dt2).
Синтаксис
Аргументы
date— дата или дата со временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает количество часов, прошедших с фиксированного момента в прошлом. UInt32
Примеры
Получение относительных номеров часа
toRelativeMinuteNum
Впервые представлена в: v1.1
Преобразует дату или дату и время в количество минут, прошедших с некоторого фиксированного момента в прошлом.
Точная точка во времени является деталью реализации, поэтому эту функцию не следует использовать самостоятельно.
Основное назначение функции — вычислять разницу в минутах между двумя датами или датами и временем, например: toRelativeMinuteNum(dt1) - toRelativeMinuteNum(dt2).
Синтаксис
Аргументы
date— дата или дата со временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает количество минут, прошедших с фиксированной точки отсчёта в прошлом. UInt32
Примеры
Получение относительных номеров минут
toRelativeMonthNum
Введена в версии v1.1.
Преобразует дату или дату со временем в количество месяцев, прошедших с некоторого фиксированного момента в прошлом.
Точная точка во времени — деталь реализации, поэтому эта функция не предназначена для самостоятельного применения.
Основное назначение функции — вычислять разницу в месяцах между двумя датами или датами со временем, например: toRelativeMonthNum(dt1) - toRelativeMonthNum(dt2).
Синтаксис
Аргументы
date— дата или дата со временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает количество месяцев, прошедших с фиксированной точки отсчёта в прошлом. UInt32
Примеры
Получение относительных номеров месяцев
toRelativeQuarterNum
Введена в: v1.1
Преобразует дату или дату со временем в количество кварталов, прошедших с некоторого фиксированного момента в прошлом.
Точная точка во времени — это деталь реализации, поэтому данная функция не предназначена для самостоятельного использования.
Основное назначение функции — вычисление разницы в кварталах между двумя датами или датами со временем, например, toRelativeQuarterNum(dt1) - toRelativeQuarterNum(dt2).
Синтаксис
Аргументы
date— дата или дата и время.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает количество кварталов от фиксированной точки отсчёта в прошлом. UInt32
Примеры
Получение относительных номеров кварталов
toRelativeSecondNum
Добавлена в: v1.1
Преобразует дату или дату со временем в количество секунд, прошедших с некоторого фиксированного опорного момента в прошлом.
Точный момент времени является деталью реализации, поэтому эту функцию не следует использовать как самостоятельную.
Основное назначение функции — вычислять разницу в секундах между двумя датами или датами со временем, например, toRelativeSecondNum(dt1) - toRelativeSecondNum(dt2).
Синтаксис
Аргументы
date— дата или дата со временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает количество секунд, прошедших с фиксированной точки отсчёта в прошлом. UInt32
Примеры
Получение относительных номеров секунд
toRelativeWeekNum
Впервые появилась в версии: v1.1
Преобразует дату или дату со временем в количество недель, прошедших с некоторого фиксированного момента в прошлом.
Точная точка во времени является деталью реализации, поэтому эта функция не предназначена для самостоятельного использования.
Основное назначение функции — вычислять разницу в неделях между двумя датами или датами со временем, например, toRelativeWeekNum(dt1) - toRelativeWeekNum(dt2).
Синтаксис
Аргументы
date— дата или дата со временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает число недель, прошедших с фиксированной опорной точки в прошлом. UInt32
Примеры
Получение относительных номеров недель
toRelativeYearNum
Введена в: v1.1
Преобразует дату или дату со временем в количество лет, прошедших с некоторого фиксированного момента в прошлом.
Конкретный момент времени является деталью реализации, поэтому эту функцию не следует использовать самостоятельно.
Основное назначение функции — вычисление разницы в годах между двумя датами или датами со временем, например, toRelativeYearNum(dt1) - toRelativeYearNum(dt2).
Синтаксис
Аргументы
date— дата или дата со временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает число лет от фиксированной точки отсчёта в прошлом. UInt16
Примеры
Получение относительных номеров года
toSecond
Появилась в версии: v1.1
Возвращает секундную компоненту (0–59) значения типов DateTime или DateTime64.
Синтаксис
Псевдонимы: SECOND
Аргументы
datetime— дата и время, из которых нужно получить значение секунды.DateTimeилиDateTime64
Возвращаемое значение
Возвращает значение секунды в минуте (от 0 до 59) для datetime. UInt8
Примеры
Пример использования
toStartOfDay
Введена в версии: v1.1
Округляет значение даты и времени до начала дня.
Тип возвращаемого значения можно настроить с помощью настройки enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает дату и время, округлённые вниз до начала дня. Date или DateTime или Date32 или DateTime64
Примеры
Округление вниз до начала дня
toStartOfFifteenMinutes
Введена в версии v1.1
Округляет дату со временем вниз до начала пятнадцатиминутного интервала.
Тип возвращаемого значения можно настроить с помощью настройки enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
datetime— дата или дата со временем для округления.DateTimeилиDateTime64
Возвращаемое значение
Возвращает дату и время, округлённые до начала ближайшего пятнадцатиминутного интервала, в виде значения типа DateTime или DateTime64.
Примеры
Пример
toStartOfFiveMinutes
Добавлено в: v22.6
Округляет дату и время вниз до начала ближайшего пятиминутного интервала.
Тип возвращаемого значения функции можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Псевдонимы: toStartOfFiveMinute
Аргументы
datetime— Дата и время, которые нужно округлить.DateTimeилиDateTime64
Возвращаемое значение
Возвращает дату и время, округленные до начала ближайшего пятиминутного интервала, в виде значения типа DateTime или DateTime64
Примеры
Пример
toStartOfHour
Добавлена в версии: v1.1
Округляет дату со временем вниз до начала часа.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
datetime— дата и время для округления.DateTimeилиDateTime64
Возвращаемое значение
Возвращает дату и время, округлённые вниз до начала часа. DateTime или DateTime64
Примеры
Округление вниз до начала часа
toStartOfISOYear
Введена в версии: v1.1
Округляет дату или дату и время к первому дню ISO‑года, который может отличаться от обычного календарного года. См. ISO week date.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
value— Дата или дата-время, которая округляется в меньшую сторону до первого дня ISO-года.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает первый день ISO-года для заданной даты или даты-время. Date
Примеры
Округление в меньшую сторону до первого дня ISO-года
toStartOfInterval
Впервые появилась в: v20.1
Эта функция обобщает другие функции toStartOf*() с синтаксисом toStartOfInterval(date_or_date_with_time, INTERVAL x unit [, time_zone]).
Например,
toStartOfInterval(t, INTERVAL 1 YEAR)возвращает то же, что иtoStartOfYear(t),toStartOfInterval(t, INTERVAL 1 MONTH)возвращает то же, что иtoStartOfMonth(t),toStartOfInterval(t, INTERVAL 1 DAY)возвращает то же, что иtoStartOfDay(t),toStartOfInterval(t, INTERVAL 15 MINUTE)возвращает то же, что иtoStartOfFifteenMinutes(t).
Вычисление производится относительно определённых моментов времени:
| Interval | Start |
|---|---|
| YEAR | год 0 |
| QUARTER | 1900 Q1 |
| MONTH | январь 1900 |
| WEEK | 1970, 1-я неделя (01-05) |
| DAY | 1970-01-01 |
| HOUR | (*) |
| MINUTE | 1970-01-01 00:00:00 |
| SECOND | 1970-01-01 00:00:00 |
| MILLISECOND | 1970-01-01 00:00:00 |
| MICROSECOND | 1970-01-01 00:00:00 |
| NANOSECOND | 1970-01-01 00:00:00 |
| (*) интервалы в часах являются особым случаем: вычисление всегда выполняется относительно 00:00:00 (полуночи) текущих суток. В результате | |
| полезны только значения часа от 1 до 23. |
Если указана единица измерения WEEK, toStartOfInterval предполагает, что недели начинаются с понедельника. Обратите внимание, что это поведение отличается от функции toStartOfWeek, в которой недели по умолчанию начинаются с воскресенья.
Вторая перегрузка эмулирует функцию TimescaleDB time_bucket(), а также функцию PostgreSQL date_bin().
Синтаксис
Псевдонимы: time_bucket, date_bin
Аргументы
value— Значение даты или даты со временем, которое нужно округлить в меньшую сторону.DateилиDateTimeилиDateTime64x— Число, задающее длину интервала. -unit— Единица измерения интервала: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND. -time_zone— Необязательный параметр. Название часового пояса в виде строки. -origin— Необязательный параметр. Исходная точка для вычислений (только для второй перегрузки).
Возвращаемое значение
Возвращает начало интервала, в который попадает входное значение. DateTime
Примеры
Базовое округление по интервалу
Использование начальной точки отсчёта
toStartOfMicrosecond
Добавлена в версии: v22.6
Округляет значение даты и времени вниз до начала микросекунды.
Синтаксис
Аргументы
datetime— Дата и время.DateTime64timezone— Необязательный параметр. Часовой пояс для возвращаемого значения. Если не указан, функция использует часовой пояс параметраvalue.String
Возвращаемое значение
Входное значение с отброшенными субмикросекундами DateTime64
Примеры
Запрос без указания часового пояса
Запрос с указанием часового пояса
toStartOfMillisecond
Появилась в версии: v22.6
Округляет дату и время вниз до начала миллисекунды.
Синтаксис
Аргументы
datetime— Дата и время.DateTime64timezone— Необязательный параметр. Часовой пояс для возвращаемого значения. Если не указан, функция использует часовой пояс параметраvalue.String
Возвращаемое значение
Входное значение с субмиллисекундной точностью. DateTime64
Примеры
Запрос без часового пояса
Запрос с указанием часового пояса
toStartOfMinute
Впервые появилась в: v1.1
Округляет дату и время вниз до начала минуты.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
datetime— дата и время, которые нужно округлить.DateTimeилиDateTime64
Возвращаемое значение
Возвращает дату и время, округлённые вниз до начала минуты. DateTime или DateTime64
Примеры
Округление вниз до начала минуты
toStartOfMonth
Введена в версии v1.1
Округляет дату или дату со временем до первого дня месяца.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
value— Дата или дата и время, которые нужно округлить вниз до первого дня месяца.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает первый день месяца для заданной даты или даты и времени. Date
Примеры
Округление вниз до первого дня месяца
toStartOfNanosecond
Впервые представлена в: v22.6
Округляет дату и время вниз до начала наносекундного интервала.
Синтаксис
Аргументы
datetime— дата и время.DateTime64timezone— необязательный параметр. Часовой пояс для возвращаемого значения. Если не указан, функция использует часовой пояс параметраvalue.String
Возвращаемое значение
Исходное значение с наносекундами. DateTime64
Примеры
Запрос без часового пояса
Запрос с указанием часового пояса
toStartOfQuarter
Введена в версии: v1.1
Округляет дату или дату и время вниз до первого дня квартала. Первым днём квартала является 1 января, 1 апреля, 1 июля или 1 октября.
Тип возвращаемого значения функции можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
value— дата или дата и время, которые нужно округлить вниз до первого дня квартала.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает первый день квартала для указанной даты или даты и времени. Date
Примеры
Округление вниз до первого дня квартала
toStartOfSecond
Добавлена в версии: v20.5
Округляет дату и время вниз до начала секунды.
Синтаксис
Аргументы
datetime— Дата и время, из которых нужно отбросить доли секунды.DateTime64timezone— Необязательный параметр. Часовой пояс для возвращаемого значения. Если не указан, функция использует часовой пояс параметраvalue.String
Возвращаемое значение
Возвращает исходное значение без долей секунды. DateTime64
Примеры
Запрос без часового пояса
Запрос с указанием часового пояса
toStartOfTenMinutes
Добавлена в версии: v20.1
Округляет дату и время вниз до начала ближайшего десятиминутного интервала.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
datetime— дата и время.DateTimeилиDateTime64
Возвращаемое значение
Возвращает дату и время, округлённые до начала ближайшего десятиминутного интервала, значение типа DateTime или DateTime64
Примеры
Пример
toStartOfWeek
Впервые появилась в: v20.1
Округляет дату или дату‑время до ближайшего (в меньшую сторону) воскресенья или понедельника.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
datetime— дата или дата со временем для преобразования.DateилиDateTimeилиDate32илиDateTime64mode— определяет первый день недели, как описано в функцииtoWeek(). Значение по умолчанию —0.UInt8timezone— часовой пояс, используемый для преобразования. Если не указан, используется часовой пояс сервера.String
Возвращаемое значение
Возвращает дату ближайшего воскресенья или понедельника, не позже заданной даты (включительно), в зависимости от режима, в виде значения типа Date или Date32 или DateTime или DateTime64
Примеры
Округление вниз до ближайшего воскресенья или понедельника
toStartOfYear
Добавлена в: v1.1
Округляет дату или дату и время вниз до первого дня года. Возвращает значение типа Date.
Тип возвращаемого значения можно настроить с помощью параметра enable_extended_results_for_datetime_functions.
Синтаксис
Аргументы
value— дата или дата со временем, которую нужно округлить вниз.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает первый день года для заданной даты/времени типа Date
Примеры
Округление до первого дня года
toTimeWithFixedDate
Появилась в версии: v1.1
Извлекает компонент времени из даты или даты со временем.
Возвращаемый результат — это смещение от фиксированной точки во времени, в настоящее время 1970-01-02,
но точная точка во времени является деталью реализации и может измениться в будущем.
Поэтому toTime не следует использовать как самостоятельную функцию.
Основное назначение функции — вычислять разницу во времени между двумя датами или датами со временем, например, toTime(dt1) - toTime(dt2).
Синтаксис
Аргументы
date— Дата для преобразования во время.DateилиDateTimeилиDateTime64timezone— Необязательный аргумент. Часовой пояс для возвращаемого значения.String
Возвращаемое значение
Возвращает временную составляющую даты или значения дата‑время в виде смещения относительно фиксированной точки во времени (в настоящее время это 1970-01-02). DateTime
Примеры
Вычисление разницы времени между двумя датами
toTimezone
Появилась в версии v1.1
Преобразует DateTime или DateTime64 в указанную временную зону.
Внутреннее значение (количество секунд UNIX) данных не изменяется.
Изменяются только атрибут часового пояса этого значения и его строковое представление.
Синтаксис
Псевдонимы: toTimeZone
Аргументы
date— Значение для преобразования.DateTimeилиDateTime64timezone— Имя целевого часового пояса.String
Возвращаемое значение
Возвращает ту же метку времени, что и на входе, но с указанным часовым поясом, в виде DateTime или DateTime64.
Примеры
Пример использования
toUTCTimestamp
Появилась в версии: v23.8
Преобразует значение даты или даты со временем из указанного часового пояса во временную метку в часовом поясе UTC. Эта функция предназначена в основном для совместимости с Apache Spark и аналогичными фреймворками.
Синтаксис
Псевдонимы: to_utc_timestamp
Аргументы
datetime— Константное значение или выражение типа дата или дата со временем.DateTimeилиDateTime64time_zone— Константное значение или выражение типа строка, представляющее часовой пояс.String
Возвращаемое значение
Возвращает дату или дату со временем в часовом поясе UTC. DateTime или DateTime64
Примеры
Преобразование часового пояса в UTC
toUnixTimestamp
Была добавлена в версии: v1.1
Преобразует String, Date или DateTime в Unix-временную метку (количество секунд с 1970-01-01 00:00:00 UTC) типа UInt32.
Синтаксис
Аргументы
date— Значение, которое нужно преобразовать.DateилиDate32илиDateTimeилиDateTime64илиStringtimezone— Необязательный параметр. Часовой пояс, используемый для преобразования. Если не задан, используется часовой пояс сервера.String
Возвращаемое значение
Возвращает метку времени Unix. UInt32
Примеры
Пример использования
toWeek
Введена в: v20.1
Эта функция возвращает номер недели для значения типа date или datetime. Двухаргументная форма toWeek() позволяет указать, начинается ли неделя
с воскресенья или с понедельника, а также должен ли возвращаемый результат находиться в диапазоне от 0 до 53 или от 1 до 53.
toISOWeek() — это функция совместимости, эквивалентная toWeek(date,3).
Следующая таблица описывает, как работает аргумент режима.
| Mode | Первый день недели | Диапазон | Неделя 1 — первая неделя ... |
|---|---|---|---|
| 0 | Sunday | 0-53 | с воскресеньем в этом году |
| 1 | Monday | 0-53 | с 4 или более днями в этом году |
| 2 | Sunday | 1-53 | с воскресеньем в этом году |
| 3 | Monday | 1-53 | с 4 или более днями в этом году |
| 4 | Sunday | 0-53 | с 4 или более днями в этом году |
| 5 | Monday | 0-53 | с понедельником в этом году |
| 6 | Sunday | 1-53 | с 4 или более днями в этом году |
| 7 | Monday | 1-53 | с понедельником в этом году |
| 8 | Sunday | 1-53 | содержащая 1 января |
| 9 | Monday | 1-53 | содержащая 1 января |
Для значений режима со смыслом "с 4 или более днями в этом году" недели нумеруются в соответствии с ISO 8601:1988:
- Если неделя, содержащая 1 января, имеет 4 или более дней в новом году, это неделя 1.
- В противном случае это последняя неделя предыдущего года, а следующая неделя — неделя 1.
Для значений режима со смыслом "содержит 1 января" неделя, содержащая 1 января, является неделей 1. Не имеет значения, сколько дней нового года приходится на эту неделю, даже если только один. Т.е. если последняя неделя декабря содержит 1 января следующего года, она будет неделей 1 следующего года.
Первый аргумент также может быть указан как String в формате, поддерживаемом функцией parseDateTime64BestEffort(). Поддержка строковых аргументов существует только по причинам совместимости с MySQL, которой ожидают некоторые сторонние инструменты. Поскольку в будущем поддержка строковых аргументов может быть сделана зависящей от новых настроек совместимости с MySQL и потому, что разбор строк в целом выполняется медленно, рекомендуется не использовать его.
Синтаксис
Псевдонимы: week
Аргументы
datetime— Дата или дата со временем, для вычисления номера недели.DateилиDateTimemode— Необязательный параметр. Значение от0до9определяет первый день недели и диапазон номеров недель. По умолчанию0.time_zone— Необязательный параметр. Часовой пояс.String
Возвращаемое значение
Возвращает номер недели в соответствии с указанным режимом. UInt32
Примеры
Получение номеров недель с разными режимами
toYYYYMM
Добавлено в версии: v1.1
Преобразует дату или дату со временем в число типа UInt32, содержащее год и номер месяца (YYYY * 100 + MM).
Принимает второй необязательный аргумент часового пояса. Аргумент часового пояса, если задан, должен быть строковой константой.
Эта функция является противоположностью функции YYYYMMDDToDate().
Синтаксис
Аргументы
datetime— дата или дата со временем для преобразования.DateилиDate32илиDateTimeилиDateTime64timezone— необязательный параметр. Часовой пояс для преобразования. Если указан, часовой пояс должен быть строковой константой.String
Возвращаемое значение
Возвращает число типа UInt32, представляющее год и номер месяца (YYYY * 100 + MM). UInt32
Примеры
Преобразование текущей даты в формат YYYYMM
toYYYYMMDD
Впервые появилась в версии: v1.1
Преобразует дату или дату со временем в целое число типа UInt32, содержащее год, месяц и день (YYYY * 10000 + MM * 100 + DD). Принимает второй необязательный аргумент часового пояса. Если он указан, часовой пояс должен быть строковой константой.
Синтаксис
Аргументы
datetime— Дата или дата и время для преобразования.DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный параметр. Часовой пояс для преобразования. Если указан, часовой пояс должен быть строковой константой.String
Возвращаемое значение
Возвращает число типа UInt32, содержащее год, месяц и день (YYYY * 10000 + MM * 100 + DD). UInt32
Примеры
Преобразование текущей даты в формат YYYYMMDD
toYYYYMMDDhhmmss
Введена в версии: v1.1
Преобразует дату или дату со временем в число типа UInt64, содержащее год, месяц, день, часы, минуты и секунды в виде (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss).
Принимает второй необязательный аргумент часового пояса. Если он указан, часовой пояс должен быть строковой константой.
Синтаксис
Аргументы
datetime— дата или дата со временем для преобразования.DateилиDate32илиDateTimeилиDateTime64timezone— необязательный параметр. Часовой пояс для преобразования. Если указан, часовой пояс должен быть строковой константой.String
Возвращаемое значение
Возвращает число типа UInt64, содержащее год, месяц, день, часы, минуты и секунды (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). UInt64
Примеры
Преобразование текущей даты и времени в формат YYYYMMDDhhmmss
toYear
Добавлена в версии: v1.1
Возвращает компонент года (н.э.) значения Date или DateTime.
Синтаксис
Псевдонимы: YEAR
Аргументы
datetime— дата или дата и время, из которых извлекается год.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает год из заданного значения Date или DateTime в виде UInt16
Примеры
Пример использования
toYearNumSinceEpoch
Введена в версии: v25.3
Возвращает количество лет, прошедших с 1970 года
Синтаксис
Аргументы
date— Дата или дата и время для преобразования.DateилиDateTimeилиDateTime64
Возвращаемое значение
Положительное целое число.
Примеры
Пример
toYearWeek
Появилась в версии: v20.1
Возвращает год и неделю для даты. Год в результате может отличаться от года в аргументе даты для первой и последней недели года.
Аргумент mode работает так же, как аргумент mode функции toWeek().
Предупреждение: Номер недели, возвращаемый toYearWeek(), может отличаться от значения, которое возвращает toWeek(). toWeek() всегда возвращает номер недели в контексте данного года, и в случае, когда toWeek() возвращает 0, toYearWeek() возвращает значение, соответствующее последней неделе предыдущего года. См. prev_yearWeek в примере ниже.
Первый аргумент также может быть указан как String в формате, поддерживаемом parseDateTime64BestEffort(). Поддержка строковых аргументов предусмотрена только для совместимости с MySQL, которой ожидают некоторые сторонние инструменты. Поскольку в будущем поддержка строковых аргументов может быть сделана зависимой от новых настроек совместимости с MySQL, а также потому, что разбор строк в целом является медленной операцией, рекомендуется его не использовать.
Синтаксис
Псевдонимы: yearweek
Аргументы
datetime— Дата или дата-время, для которой нужно получить год и номер недели.DateилиDateTimemode— Необязательный параметр. Режим0–9определяет первый день недели и диапазон значений номера недели. По умолчанию0.timezone— Необязательный параметр. Часовой пояс.String
Возвращаемое значение
Возвращает год и номер недели как совмещённое целочисленное значение. UInt32
Примеры
Получение значений год-неделя с различными режимами
today
Добавлена в версии: v1.1
Возвращает текущую дату на момент анализа запроса. То же, что и toDate(now()).
Синтаксис
Псевдонимы: curdate, current_date
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает текущую дату Date.
Примеры
Пример использования
yesterday
Появилась в версии: v1.1
Не принимает аргументов и возвращает дату вчерашнего дня в один из моментов анализа запроса.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает вчерашнюю дату. Тип: Date
Примеры
Получение вчерашней даты