Функции для работы с датами и временем
Большинство функций в этом разделе принимают необязательный аргумент часового пояса, например 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 на основе указанных аргументов.
Примеры
Пример
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 или DateTime.
Синтаксис
Аргументы
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_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_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, date_diff, TIMESTAMP_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нечувствителен к регистру.Unit Совместимость nanosecondСовместим только с DateTime64 microsecondСовместим только с DateTime64 millisecondСовместим только с DateTime64 secondminutehourdayweekmonthquarteryearStringdatetime— Дата и время.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 | с масштабом 3, 6 или 9 |
Примеры
Усечение без указания часового пояса
Усечение с указанным часовым поясом
formatDateTime
Введена в версии v1.1
Форматирует дату или дату со временем в соответствии с заданной строкой формата. format — это константное выражение, поэтому вы не можете использовать несколько форматов для одного результирующего столбца.
formatDateTime использует стиль формата datetime 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 | год для недельного счёта (пока не поддерживается) | год | 1996 |
| w | неделя в году по недельному счёту (пока не поддерживается) | число | 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— номер модифицированного юлианского дня (Modified Julian Day).(U)Int*
Возвращаемое значение
Возвращает дату в текстовом формате для допустимого аргумента day, в противном случае — null. Nullable(String)
Примеры
Преобразование Modified Julian Day в дату с обработкой 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 для метки времени при вызове с одним аргументом или 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 из года, месяца, дня, часа, минуты и секунды
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.
Если функция выполняется в контексте 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— количество часов, которое нужно вычесть.(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— количество месяцев, на которое уменьшается значениеdatetime.(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— количество секунд, на которое нужно уменьшить значениеdatetime.(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— Количество недель, на которое нужно уменьшить значениеdatetime.(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 или выражение, задающее часовой пояс.String
Возвращаемое значение
Возвращает время, округлённое до начала интервала длительностью полчаса. DateTime
Примеры
Округление времени до получасового интервала
timeSlots
Появилась в версии v1.1
Для временного интервала, начинающегося в StartTime и продолжающегося Duration секунд, функция возвращает массив моментов времени — точки внутри этого интервала, округлённые вниз до шага Size в секундах. Параметр Size является необязательным и по умолчанию равен 1800 (30 минут).
Это нужно, например, при поиске просмотров страниц в соответствующей сессии.
Для DateTime64 масштаб (scale) возвращаемого значения может отличаться от масштаба 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 | Первый день недели | Диапазон |
|---|---|---|
| 0 | Monday | 1-7: Monday = 1, Tuesday = 2, ..., Sunday = 7 |
| 1 | Monday | 0-6: Monday = 0, Tuesday = 1, ..., Sunday = 6 |
| 2 | Sunday | 0-6: Sunday = 0, Monday = 1, ..., Saturday = 6 |
| 3 | Sunday | 1-7: Sunday = 1, Monday = 2, ..., Saturday = 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.
Вычисление совпадает с функцией TO_DAYS в MySQL.
Синтаксис
Псевдонимы: 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
Возвращаемое значение
Возвращает дату ближайшей субботы или воскресенья, начиная с указанной даты (включительно), в зависимости от режима. 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
Преобразует дату в пролептическом григорианском календаре (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 | year 0 |
| QUARTER | 1900 Q1 |
| MONTH | 1900 January |
| WEEK | 1970, 1st week (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.
| 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 января |
Для значений mode со смыслом «с 4 или более днями в этом году» недели нумеруются в соответствии с ISO 8601:1988:
- Если неделя, содержащая 1 января, имеет 4 или более дней в новом году, это неделя 1.
- В противном случае это последняя неделя предыдущего года, а следующая неделя — неделя 1.
Для значений mode со смыслом «содержит 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
Примеры
Получение вчерашней даты