Функции для работы с датами и временем
Большинство функций в этом разделе принимают необязательный аргумент часового пояса, например, Europe/Amsterdam. В этом случае используется указанный часовой пояс вместо локального (по умолчанию).
Пример
UTCTimestamp
Введена в версии: v22.11
Возвращает текущие дату и время на момент анализа запроса. Функция является константным выражением.
Эта функция возвращает тот же результат, что и now('UTC'). Она была добавлена только для совместимости с MySQL. Предпочтительно использовать функцию now.
Синтаксис
Псевдонимы: UTC_timestamp
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает текущие дату и время на момент анализа запроса. DateTime
Примеры
Получение текущей метки времени UTC
YYYYMMDDToDate
Появилась в версии v23.9
Преобразует число, содержащее год, месяц и день, в значение типа Date.
Эта функция является противоположностью функции toYYYYMMDD().
Результат не определён, если входное значение не кодирует корректную дату.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает значение типа 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— количество кварталов, которое нужно прибавить.(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— Тип единицы измерения интервала результата.
| Unit | Possible values |
|---|---|
| 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_or_datetime— значение, которое нужно изменить.DateилиDate32илиDateTimeилиDateTime64value— новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, с изменённым компонентом дня. Date или Date32 или DateTime или DateTime64
Примеры
Пример использования
changeHour
Добавлена в версии v24.7
Изменяет часовую часть значения типа Date или DateTime.
Синтаксис
Аргументы
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— тип интервала результата.
| Единица | Допустимые значения |
|---|---|
| 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— Тип интервала, до которого усекается результат. Аргументunitне чувствителен к регистру.Единица Совместимость nanosecondПоддерживается только для DateTime64 microsecondПоддерживается только для DateTime64 millisecondПоддерживается только для DateTime64 secondminutehourdayweekmonthquarteryearStringdatetime— Дата и время.DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный аргумент. Имя часового пояса для возвращаемого значения даты и времени. Если не указан, функция использует часовой пояс аргумента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 | с точностью 3, 6 или 9 |
Примеры
Усечение без часового пояса
Усечение с заданным часовым поясом
formatDateTime
Появилась в версии: v1.1
Форматирует дату или дату со временем в соответствии с заданной строкой формата. format является константным выражением, поэтому вы не можете использовать несколько форматов для одного результирующего столбца.
formatDateTime использует стиль форматов даты и времени MySQL, см. документацию MySQL.
Обратная операция для этой функции — parseDateTime.
Используя подстановочные поля, вы можете задать шаблон для результирующей строки.
Пример столбца в таблице ниже показывает результат форматирования для 2018-01-02 22:33:44.
Подстановочные поля:
| Placeholder | Описание | Пример |
|---|---|---|
| %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выводит количество цифр, равное масштабу 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
Примеры
Форматирование значения datetime с использованием синтаксиса 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— номер модифицированного юлианского дня.(U)Int*
Возвращаемое значение
Возвращает дату в текстовом формате. String
Примеры
Преобразование модифицированного юлианского дня в дату
fromModifiedJulianDayOrNull
Добавлена в версии: v21.1
Аналогична fromModifiedJulianDay(), но вместо выбрасывания исключений возвращает NULL.
Синтаксис
Аргументы
day— число модифицированного юлианского дня.(U)Int*
Возвращаемое значение
Возвращает дату в текстовом виде для валидного аргумента day, в противном случае — null. Nullable(String)
Примеры
Преобразование модифицированного юлианского дня в дату с обработкой значений null
fromUTCTimestamp
Появилась в версии: v22.1
Преобразует значение даты или даты со временем из часового пояса UTC в значение даты или даты со временем в указанном часовом поясе. Эта функция предназначена главным образом для совместимости с Apache Spark и аналогичными фреймворками.
Синтаксис
Псевдонимы: from_utc_timestamp
Аргументы
datetime— константа типа дата или дата со временем либо выражение.DateTimeилиDateTime64time_zone— константа типа String или выражение, задающее часовой пояс.String
Возвращаемое значение
Возвращает значение типа DateTime/DateTime64 в указанном часовом поясе. DateTime или DateTime64
Примеры
Преобразование часового пояса UTC в указанный часовой пояс
fromUnixTimestamp
Введена в версии: v20.8
Эта функция преобразует Unix-метку времени в календарную дату и время суток.
Её можно вызывать двумя способами:
- Если передан один аргумент типа
Integer, возвращается значение типаDateTime, т.е. функция ведёт себя какtoDateTime. - Если переданы два или три аргумента, где первый аргумент — значение типа
Integer,Date,Date32,DateTimeилиDateTime64, второй аргумент — константная строка формата, а третий аргумент — необязательная константная строка часового пояса, функция возвращает значение типаString, т.е. ведёт себя какformatDateTime. В этом случае используется стиль формата datetime из MySQL.
Синтаксис
Псевдонимы: FROM_UNIXTIME
Аргументы
timestamp— Unix-временная метка или значение даты/даты со временем.(U)Int*илиDateилиDate32илиDateTimeилиDateTime64format— Необязательный аргумент. Константная строка формата для форматирования вывода.Stringtimezone— Необязательный аргумент. Константная строка часового пояса.String
Возвращаемое значение
При вызове с одним аргументом возвращает значение DateTime, соответствующее временной метке, при вызове с двумя или тремя аргументами — строку 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 из значений года, месяца, дня, часа, минуты и секунды
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 из года, месяца, дня, часа, минуты, секунды
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.
Если функция выполняется в контексте распределённой таблицы, она формирует обычный столбец со значениями, соответствующими каждому шарду. В противном случае она возвращает константное значение.
Синтаксис
Псевдонимы: 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— количество часов, которое нужно вычесть.(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*
Возвращаемое значение
Возвращает значение типа DateTime64, равное datetime минус num микросекунд.
Примеры
Вычитание микросекунд из различных типов значений даты и времени
Использование альтернативного синтаксиса 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— Время, которое нужно округлить до начала получасового интервала.DateTimeилиDate32илиDateTime64time_zone— Необязательный параметр. Константное значение типаStringили выражение, задающее часовой пояс.
Возвращаемое значение
Возвращает время, округлённое до начала получасового интервала. DateTime
Примеры
Округление времени до получасового интервала
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, преобразованное к типу DateTime64(6), или expr с добавленным временем.
Примеры
Преобразование строки с датой в 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.
| Режим | Первый день недели | Диапазон |
|---|---|---|
| 0 | Понедельник | 1-7: понедельник = 1, вторник = 2, ..., воскресенье = 7 |
| 1 | Понедельник | 0-6: понедельник = 0, вторник = 1, ..., воскресенье = 6 |
| 2 | Воскресенье | 0-6: воскресенье = 0, понедельник = 1, ..., суббота = 6 |
| 3 | Воскресенье | 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
Примеры
Пример использования
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
Возвращаемое значение
Возвращает дату ближайшей субботы или воскресенья, не ранее указанной даты, в зависимости от значения mode — Date или Date32 или DateTime или DateTime64
Примеры
Округление вверх до ближайшей субботы или воскресенья
toMillisecond
Добавлено в: v24.2
Возвращает компоненту миллисекунд (0–999) для значения типа DateTime или DateTime64.
Синтаксис
Псевдонимы: 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
Преобразует дату в пролептическом григорианском календаре в текстовом формате YYYY-MM-DD в номер модифицированного юлианского дня типа 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().
Синтаксис
Псевдонимы: date_bin, time_bucket
Аргументы
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 | First day of week | Range | Week 1 is the first week ... |
|---|---|---|---|
| 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
Примеры
Получение вчерашней даты