Функции для работы с датами и временем
Большинство функций в этом разделе принимают необязательный аргумент часового пояса, например, Europe/Amsterdam. В этом случае будет использоваться указанный часовой пояс вместо локального (по умолчанию) часового пояса.
Пример
UTCTimestamp
Введено в: v22.11
Возвращает текущую дату и время в момент анализа запроса. Функция является константным выражением.
Эта функция даёт такой же результат, как и now('UTC'). Она была добавлена только для поддержки MySQL. now является наиболее предпочтительным использованием.
Синтаксис
Аргументы
- Нет. Возвращаемое значение
Возвращает текущую дату и время в момент анализа запроса. DateTime
Примеры
Получить текущий UTC timestamp
YYYYMMDDToDate
Введено в: v23.9
Преобразует число, содержащее год, месяц и день, в Date.
Эта функция является противоположностью функции toYYYYMMDD().
Вывод не определён, если входные данные не закодируют допустимое значение Date.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает значение Date из предоставленных аргументов Date
Примеры
Пример
YYYYMMDDToDate32
Введено в: v23.9
Преобразует число, содержащее год, месяц и день, в Date32.
Эта функция является противоположностью функции toYYYYMMDD().
Вывод не определён, если входные данные не закодируют допустимое значение Date32.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает значение Date32 из предоставленных аргументов Date32
Примеры
Пример
YYYYMMDDhhmmssToDateTime
Введено в: v23.9
Преобразует число, содержащее год, месяц, день, час, минуту и секунду, в DateTime.
Эта функция является противоположностью функции toYYYYMMDDhhmmss().
Вывод не определён, если входные данные не закодируют допустимое значение DateTime.
Синтаксис
Аргументы
YYYYMMDDhhmmss— Число, содержащее год, месяц, день, час, минуту и секунду.(U)Int*илиFloat*илиDecimaltimezone— Название часового пояса.String
Возвращаемое значение
Возвращает значение DateTime, полученное из предоставленных аргументов DateTime
Примеры
Пример
YYYYMMDDhhmmssToDateTime64
Введено в: v23.9
Преобразует число, содержащее год, месяц, день, час, минуту и секунду, в DateTime64.
Эта функция является противоположностью функции toYYYYMMDDhhmmss().
Вывод не определён, если входные данные не закодируют допустимое значение DateTime64.
Синтаксис
Аргументы
YYYYMMDDhhmmss— Число, содержащее год, месяц, день, час, минуту и секунду.(U)Int*илиFloat*илиDecimalprecision— Точность для дробной части (0-9).UInt8timezone— Название часового пояса.String
Возвращаемое значение
Возвращает значение DateTime64 из предоставленных аргументов DateTime64
Примеры
Пример
addDate
Введено в: v23.9
Добавляет временной интервал к указанной дате, дате с временем или строке, закодированной как дата или дата с временем. Если добавление приводит к значению, выходящему за пределы типа данных, результат не определён.
Синтаксис
Аргументы
datetime— Дата или дата с временем, к которой добавляетсяinterval.DateилиDate32илиDateTimeилиDateTime64илиStringinterval— Интервал для добавления.Interval
Возвращаемое значение
Возвращает дату или дату с временем, полученные путем добавления interval к datetime. Date или Date32 или DateTime или DateTime64
Примеры
Добавить интервал к дате
addDays
Введено в: v1.1
Добавляет указанное количество дней к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime— Дата или дата с временем, к которой добавляется указанное количество дней.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество дней для добавления.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime плюс num дней. Date или Date32 или DateTime или DateTime64
Примеры
Добавить дни к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addHours
Введено в: v1.1
Добавляет указанное количество часов к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime— Дата или дата с временем, к которой добавляется указанное количество часов.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество часов для добавления.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime плюс num часов DateTime или DateTime64(3)
Примеры
Добавить часы к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addInterval
Введено в: v22.11
Добавляет интервал к другому интервалу или кортежу интервалов.
Интервалы одинакового типа будут объединены в один интервал. Например, если переданы toIntervalDay(1) и toIntervalDay(2), то результат будет (3), а не (1,1).
Синтаксис
Аргументы
interval_1— Первый интервал или кортеж интервалов.IntervalилиTuple(Interval)interval_2— Второй интервал, который будет добавлен.Interval
Возвращаемое значение
Возвращает кортеж интервалов Tuple(Interval)
Примеры
Добавить интервалы
addMicroseconds
Введено в: v22.6
Добавляет указанное количество микросекунд к дате с временем или строке, закодированной как дата с временем.
Синтаксис
Аргументы
datetime— Дата с временем, к которой добавляется указанное количество микросекунд.DateTimeилиDateTime64илиStringnum— Количество микросекунд для добавления.(U)Int*илиFloat*
Возвращаемое значение
Возвращает date_time плюс num микросекунд DateTime64
Примеры
Добавить микросекунды к различным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addMilliseconds
Введено в: v22.6
Добавляет указанное количество миллисекунд к дате с временем или строке, закодированной как дата с временем.
Синтаксис
Аргументы
datetime— Дата с временем, к которой добавляется указанное количество миллисекунд.DateTimeилиDateTime64илиStringnum— Количество миллисекунд для добавления.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime плюс num миллисекунд DateTime64
Примеры
Добавить миллисекунды к различным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addMinutes
Введено в: v1.1
Добавляет указанное количество минут к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime— Дата или дата с временем, к которой добавляется указанное количество минут.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество минут для добавления.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime плюс num минут DateTime или DateTime64(3)
Примеры
Добавить минуты к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addMonths
Введено в: v1.1
Добавляет указанное количество месяцев к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime— Дата или дата с временем, к которой добавляется указанное количество месяцев.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество месяцев для добавления.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime плюс num месяцев Date или Date32 или DateTime или DateTime64
Примеры
Добавить месяцы к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addNanoseconds
Введено в: v22.6
Добавляет указанное количество наносекунд к дате с временем или строке, закодированной как дата с временем.
Синтаксис
Аргументы
datetime— Дата с временем, к которой добавляется указанное количество наносекунд.DateTimeилиDateTime64илиStringnum— Количество наносекунд для добавления.(U)Int*илиFloat*
Возвращаемое значение
Возвращает datetime плюс num наносекунд DateTime64
Примеры
Добавить наносекунды к различным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addQuarters
Введено в: v20.1
Добавляет указанное количество кварталов к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime— Дата или дата с временем, к которой добавляется указанное количество кварталов.DateилиDate32илиDateTimeилиDateTime64илиStringnum— Количество кварталов для добавления.(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 смотрите функцию timeDiff.
Синтаксис
Аргументы
unit— Тип интервала для результата.
| Единица | Возможные значения |
|---|---|
| наносекунда | наносекунда, наносекунды, ns |
| микросекунда | микросекунда, микросекунды, us, u |
| миллисекунда | миллисекунда, миллисекунды, ms |
| секунда | секунда, секунды, ss, s |
| минута | минута, минуты, mi, n |
| час | час, часы, hh, h |
| день | день, дни, dd, d |
| неделя | неделя, недели, wk, ww |
| месяц | месяц, месяцы, mm, m |
| квартал | квартал, кварталы, qq, q |
| год | год, годы, yyyy, yy |
startdate— Первое временное значение для вычитания (вычитаемое).DateилиDate32илиDateTimeилиDateTime64enddate— Второе временное значение для вычитания (уменьшаемое).DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный. Название часового пояса. Если указано, оно применяется к обоим значениям startdate и enddate. Если не указано, используются часовые пояса startdate и enddate. Если они не совпадают, результат не определён.String
Возвращаемое значение
Возвращает разность между enddate и startdate, выраженную в единицах. Int32
Примеры
Вычислить возраст в часах
Вычислить возраст в различных единицах
changeDay
Введено в: v24.7
Изменяет компонент дня даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime— Значение, которое нужно изменить.DateилиDate32илиDateTimeилиDateTime64value— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, с изменённым компонентом дня. Date или Date32 или DateTime или DateTime64
Примеры
Пример использования
changeHour
Введено в: v24.7
Изменяет компонент часа даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime— Значение, которое нужно изменить.DateилиDate32илиDateTimeилиDateTime64value— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime, с изменённым компонентом часа. DateTime или DateTime64
Примеры
Пример использования
changeMinute
Введено в: v24.7
Изменяет компонент минуты даты или даты с временем.
Синтаксис
Аргументы
date_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
Примеры
Пример использования
dateName
Введено в: v21.7
Возвращает указанную часть даты.
Возможные значения:
- 'год'
- 'квартал'
- 'месяц'
- 'неделя'
- 'день года'
- 'день'
- 'день недели'
- 'час'
- 'минута'
- 'секунда'
Синтаксис
Аргументы
date_part— Часть даты, которую вы хотите извлечь.Stringdatetime— Значение даты или даты с временем.DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный. Часовой пояс.String
Возвращаемое значение
Возвращает указанную часть даты. String
Примеры
Извлечение различных частей даты
dateTrunc
Введено в: v20.8
Обрезает значение даты и времени до указанной части даты.
Синтаксис
Аргументы
unit— Тип интервала, до которого обрезается результат. Аргументunitне чувствителен к регистру. | Единица | Совместимость | |------------------|---------------------------------| |наносекунда| Совместимо только с DateTime64 | |микросекунда| Совместимо только с DateTime64 | |миллисекунда| Совместимо только с DateTime64 | |секунда| | |минута| | |час| | |день| | |неделя| | |месяц| | |квартал| | |год| |Stringdatetime— Дата и время.DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный. Название часового пояса для возвращаемого datetime. Если не указано, функция использует часовой пояс параметраdatetime.String
Возвращаемое значение
Возвращает обрезанное значение даты и времени.
| Аргумент единицы | Аргумент datetime | Тип возврат |
|---|---|---|
| Год, Квартал, Месяц, Неделя | Date32 или DateTime64 или Date или DateTime | Date32 или Date |
| День, Час, Минута, Секунда | Date32, DateTime64, Date, или DateTime | DateTime64 или DateTime |
| Миллисекунда, Микросекунда, | Любой | DateTime64 |
| Наносекунда | с масштабом 3, 6 или 9 |
Примеры
Обрезать без учета часового пояса
Обрезать с указанным часовым поясом
formatDateTime
Представлено в: v1.1
Форматирует дату или дату с временем в соответствии с заданной строкой формата. format является постоянным выражением, поэтому вы не можете иметь несколько форматов для одного столбца результата.
formatDateTime использует стиль формата даты и времени MySQL, см. документацию MySQL.
Обратная операция этой функции — parseDateTime.
Используя поля замены, вы можете определить шаблон для результирующей строки. Пример столбца в таблице ниже показывает результат форматирования для 2018-01-02 22:33:44.
Поля замены:
| Заполнитель | Описание | Пример |
|---|---|---|
| %a | сокращенное имя дня недели (Пн-Вс) | Пн |
| %b | сокращенное имя месяца (Янв-Дек) | Янв |
| %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 | полное имя месяца (Январь-Декабрь) | Январь |
| %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 | полное имя дня недели (Понедельник-Воскресенье) | Понедельник |
| %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), а не полное имя месяца (Январь-Декабрь).
Синтаксис
Аргументы
datetime— Дата или дата с временем для форматирования.DateилиDate32илиDateTimeилиDateTime64format— Строка формата с полями замены.Stringtimezone— Необязательный. Имя часового пояса для форматированного времени.String
Возвращаемое значение
Возвращает значения времени и даты в соответствии с заданным форматом. String
Примеры
Форматировать дату с заполнителем года
Форматировать DateTime64 с дробными секундами
Форматировать с часовым поясом
formatDateTimeInJodaSyntax
Представлено в: v20.1
Похоже на formatDateTime, за исключением того, что форматирует дату и время в стиле Joda вместо стиля MySQL. Смотрите документацию Joda Time.
Обратная операция этой функции — parseDateTimeInJodaSyntax.
Используя поля замены, вы можете определить шаблон для результирующей строки.
Поля замены:
| Заполнитель | Описание | Представление | Примеры |
|---|---|---|---|
| G | эра | текст | AD |
| C | век эры (>=0) | число | 20 |
| Y | год эры (>=0) | год | 1996 |
| x | неделя года (не поддерживается еще) | год | 1996 |
| w | неделя в неделе года (не поддерживается еще) | число | 27 |
| e | день недели | число | 2 |
| E | день недели | текст | Вторник; Вт |
| y | год | год | 1996 |
| D | день года | число | 189 |
| M | месяц года | месяц | Июль; Июль; 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 | часовой пояс | текст | Восточное стандартное время; EST |
| Z | смещение часового пояса | зона | -0800; -0812 |
| ' | экранирование текста | разделитель | |
| '' | одинарная кавычка | литерал | ' |
Синтаксис
Аргументы
datetime— Дата или дата с временем для форматирования.DateTimeилиDateилиDate32илиDateTime64format— Строка формата с полями замены в стиле Joda.Stringtimezone— Необязательный. Имя часового пояса для форматированного времени.String
Возвращаемое значение
Возвращает значения времени и даты в соответствии с заданным форматом. String
Примеры
Форматировать дату и время, используя синтаксис Joda
fromDaysSinceYearZero
Представлено в: v23.11
Для заданного числа дней, прошедших с 1 января 0000, возвращает соответствующую дату в пролектическом григорианском календаре, определенном ISO 8601.
Вычисление такое же, как в функции MySQL FROM_DAYS(). Результат неопределен, если он не может быть представлен в границах типа Date.
Синтаксис
Аргументы
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 и аналогичными фреймворками.
Синтаксис
Аргументы
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.
Синтаксис
Аргументы
timestamp— Unix временная метка или значение даты/даты с временем.(U)Int*илиDateилиDate32илиDateTimeилиDateTime64format— Необязательный. Константная строка формата для форматирования вывода.Stringtimezone— Необязательный. Константная строка часового пояса.String
Возвращаемое значение
Возвращает DateTime временной метки при вызове с одним аргументом или строку при вызове с двумя или тремя аргументами. 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, сконструированное из предоставленных аргументов 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
Возвращает текущую дату и время в момент анализа запроса. Эта функция является постоянным выражением.
Синтаксис
Аргументы
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^-precision секунды. Допустимый диапазон: [0 : 9]. Как правило, используются - 3 (по умолчанию) (миллисекунды), 6 (микросекунды), 9 (наносекунды).UInt8timezone— Необязательный. Имя часового пояса для возвращаемого значения.String
Возвращаемое значение
Возвращает текущую дату и время в момент обработки каждого блока данных с точностью до подсекунды. DateTime64
Примеры
Разница с функцией now64()
serverTimezone
Представлено в: v23.6
Возвращает часовой пояс сервера, т.е. значение настройки timezone. Если функция выполняется в контексте распределенной таблицы, она генерирует нормальный столбец со значениями, соответствующими каждой шард. В противном случае она создает постоянное значение.
Синтаксис
Аргументы
- Не требуется.
Возвращаемое значение
Возвращает часовой пояс сервера как 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— Количество месяцев, которые нужно вычесть.(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
Возвращает количество границ заданного unit, пересеченных между startdate и enddate.
Разница вычисляется с использованием относительных единиц. Например, разница между 2021-12-29 и 2022-01-01 составляет 3 дня для единицы день (см. toRelativeDayNum), 1 месяц для единицы месяц (см. toRelativeMonthNum) и 1 год для единицы год (см. toRelativeYearNum).
Если указана единица week, то timeDiff предполагает, что недели начинаются с понедельника.
Обратите внимание, что это поведение отличается от функции toWeek(), в которой недели по умолчанию начинаются с воскресенья.
Для альтернативы timeDiff см. функцию age.
Синтаксис
Аргументы
unit— Тип интервала для результата.
| Единица | Возможные значения |
|---|---|
| наносекунда | nanosecond, nanoseconds, ns |
| микросекунда | microsecond, microseconds, us, u |
| миллисекунда | millisecond, milliseconds, ms |
| секунда | second, seconds, ss, s |
| минута | minute, minutes, mi, n |
| час | hour, hours, hh, h |
| день | day, days, dd, d |
| неделя | week, weeks, wk, ww |
| месяц | month, months, mm, m |
| квартал | quarter, quarters, qq, q |
| год | year, years, yyyy, yy |
startdate— Первое значение времени, из которого нужно вычесть (вычитаемое).DateилиDate32илиDateTimeилиDateTime64enddate— Второе значение времени, из которого нужно вычесть (уменьшаемое).DateилиDate32илиDateTimeилиDateTime64timezone— Необязательный. Название часового пояса. Если указано, оно применяется как кstartdate, так и кenddate. Если не указано, используются часовые поясаstartdateиenddate. Если они не совпадают, результат неопределен.String
Возвращаемое значение
Возвращает разницу между enddate и startdate, выраженную в unit. Int64
Примеры
Вычисление разницы дат в часах
Вычисление разницы дат в различных единицах
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 масштаб возвращаемого значения может отличаться от масштаба 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
Возвращает название часового пояса текущей сессии или преобразует смещение часового пояса или его название в каноническое название часового пояса.
Синтаксис
Аргументы
- Нет. Возвращаемое значение
Возвращает каноническое название часового пояса в виде String
Примеры
Пример использования
timezoneOf
Введено в: v21.4
Возвращает название часового пояса значения DateTime или DateTime64.
Синтаксис
Аргументы
datetime— Значение типа.DateTimeилиDateTime64timezone— Необязательный. Название часового пояса для преобразования часового пояса значенияdatetime.String
Возвращаемое значение
Возвращает название часового пояса для datetime String
Примеры
Пример использования
timezoneOffset
Введено в: v21.6
Возвращает смещение часового пояса в секундах от UTC. Функция учитывает переход на летнее/зимнее время и исторические изменения часовых поясов в указанную дату и время.
Синтаксис
Аргументы
datetime— ЗначениеDateTime, для которого нужно получить смещение часового пояса.DateTimeилиDateTime64
Возвращаемое значение
Возвращает смещение от UTC в секундах Int32
Примеры
Пример использования
toDayOfMonth
Введено в: v1.1
Возвращает день месяца (1-31) для Date или DateTime.
Синтаксис
Аргументы
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 |
Синтаксис
Аргументы
datetime— Дата или дата с временем, из которой нужно получить день недели.DateилиDate32илиDateTimeилиDateTime64mode— Необязательный. Целое число, указывающее режим недели (0-3). По умолчанию 0, если пропущен.UInt8timezone— Необязательный. Часовой пояс, который будет использован для преобразования.String
Возвращаемое значение
Возвращает день недели для заданного Date или DateTime UInt8
Примеры
Пример использования
toDayOfYear
Введено в: v18.4
Возвращает номер дня в году (1-366) для значения Date или DateTime.
Синтаксис
Аргументы
datetime— Дата или дата с временем, из которой нужно получить день года.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает день года для заданной даты или времени UInt16
Примеры
Пример использования
toDaysSinceYearZero
Введено в: v23.9
Для заданной даты возвращает количество дней, прошедших с 1 января 0000 в пролептическом григорианском календаре, определенном ISO 8601.
Расчет такой же, как в функции MySQL TO_DAYS.
Синтаксис
Аргументы
date— Дата или дата с временем, для которой нужно вычислить количество дней с нулевого года.DateилиDate32илиDateTimeилиDateTime64time_zone— Часовой пояс.String
Возвращаемое значение
Возвращает количество дней, прошедших с даты 0000-01-01. UInt32
Примеры
Вычисление дней с нулевого года
toHour
Введено в: v1.1
Возвращает компонент часа (0-23) для значения DateTime или DateTime64.
Синтаксис
Аргументы
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.
Синтаксис
Аргументы
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.
Синтаксис
Аргументы
datetime— Дата с временем, из которой нужно получить миллисекунду.DateTimeилиDateTime64
Возвращаемое значение
Возвращает миллисекунду в минуте (0 - 999) для datetime. UInt16
Примеры
Пример использования
toMinute
Введено в: v1.1
Возвращает компонент минуты (0-59) для значения Date или DateTime.
Синтаксис
Аргументы
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
Возвращаемое значение
Возвращает номер модифицированного юлианского дня для действительной даты, в противном случае — 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.
Синтаксис
Аргументы
datetime— Дата или дата с временем, из которой нужно получить месяц.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает месяц для заданной даты/времени UInt8
Примеры
Пример использования
toMonthNumSinceEpoch
Введено в: v25.3
Возвращает количество месяцев, прошедших с 1970 года.
Синтаксис
Аргументы
date— Дата или дата с временем.DateилиDateTimeилиDateTime64
Возвращаемое значение
Положительное целое число.
Примеры
Пример
toQuarter
Введено в: v1.1
Возвращает квартал года (1-4) для заданного значения Date или DateTime.
Синтаксис
Аргументы
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.
Синтаксис
Аргументы
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.
Синтаксис
Аргументы
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).
Вычисление выполнено относительно определенных моментов времени:
| Интервал | Начало |
|---|---|
| ГОД | год 0 |
| КВАРТАЛ | 1900 Q1 |
| МЕСЯЦ | Январь 1900 |
| НЕДЕЛЯ | 1970, 1-я неделя (01-05) |
| ДЕНЬ | 1970-01-01 |
| ЧАС | (*) |
| МИНУТА | 1970-01-01 00:00:00 |
| СЕКУНДА | 1970-01-01 00:00:00 |
| МИЛЛИСЕКУНДА | 1970-01-01 00:00:00 |
| МИКРОСЕКУНДА | 1970-01-01 00:00:00 |
| НАНОСЕКУНДА | 1970-01-01 00:00:00 |
| (*) Часовые интервалы являются особенными: вычисление всегда выполняется относительно 00:00:00 (полночь) текущего дня. В результате только значения часов между 1 и 23 полезны. |
Если указан единица W по отношению к неделям, toStartOfInterval предполагает, что недели начинаются с понедельника. Обратите внимание, что это поведение отличается от функции toStartOfWeek, в которой недели по умолчанию начинаются в воскресенье.
Вторая перегрузка имитирует функцию time_bucket() TimescaleDB, соответственно функцию date_bin() PostgreSQL.
Синтаксис
Аргументы
value— Дата или дата с временем, которую нужно округлить.DateилиDateTimeилиDateTime64x— Число длины интервала. -unit— Единица интервала: ГОД, КВАРТАЛ, МЕСЯЦ, НЕДЕЛЯ, ДЕНЬ, ЧАС, МИНУТА, СЕКУНДА, МИЛЛИСЕКУНДА, МИКРОСЕКУНДА, НАНОСЕКУНДА. -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) данных не изменяется.
Изменяются только атрибут временной зоны значения и строковое представление значения.
Синтаксис
Аргументы
date— Значение для преобразования.DateTimeилиDateTime64timezone— Название целевой временной зоны.String
Возвращаемое значение
Возвращает тот же временной штамп, что и на входе, но с указанным временным поясом DateTime или DateTime64
Примеры
Пример использования
toUTCTimestamp
Представлено в: v23.8
Преобразует дату или дату с временем из одной временной зоны в временной штамп UTC. Эта функция в основном включена для совместимости с Apache Spark и аналогичными фреймворками.
Синтаксис
Аргументы
datetime— Дата или дата с временем типа const значение или выражение.DateTimeилиDateTime64time_zone— Строковое значение типа const или выражение, представляющее временную зону.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
Эта функция возвращает номер недели для даты или даты с временем. Две аргументная форма toWeek() позволяет вам уточнить, начинается ли неделя
в воскресенье или понедельник, и должен ли возвращаемый результат быть в диапазоне от 0 до 53 или от 1 до 53.
toISOWeek() является совместимой функцией, эквивалентной toWeek(date,3).
В следующей таблице описано, как работает аргумент режима.
| Режим | Первый день недели | Диапазон | Неделя 1 — первая неделя ... |
|---|---|---|---|
| 0 | Воскресенье | 0-53 | с воскресеньем в этом году |
| 1 | Понедельник | 0-53 | с 4 или более днями в этом году |
| 2 | Воскресенье | 1-53 | с воскресеньем в этом году |
| 3 | Понедельник | 1-53 | с 4 или более днями в этом году |
| 4 | Воскресенье | 0-53 | с 4 или более днями в этом году |
| 5 | Понедельник | 0-53 | с понедельником в этом году |
| 6 | Воскресенье | 1-53 | с 4 или более днями в этом году |
| 7 | Понедельник | 1-53 | с понедельником в этом году |
| 8 | Воскресенье | 1-53 | содержит 1 января |
| 9 | Понедельник | 1-53 | содержит 1 января |
Для значений режима, имеющих значение "с 4 или более днями в этом году", недели нумеруются в соответствии с ISO 8601:1988:
- Если неделя, содержащая 1 января, содержит 4 или более дней в новом году, она является неделей 1.
- В противном случае, это последняя неделя предыдущего года, и следующая неделя является неделей 1.
Для значений режима, имеющих значение "содержит 1 января", неделя, содержащая 1 января, становится неделей 1. Не важно, сколько дней в новом году содержала неделя, даже если она содержала только один день. Например, если последняя неделя декабря содержит 1 января следующего года, это будет неделя 1 следующего года.
Первый аргумент также может быть указан как String в формате, поддерживаемом функцией parseDateTime64BestEffort(). Поддержка строковых аргументов существует только по причинам совместимости с MySQL, ожидаемым некоторыми сторонними инструментами. Поскольку поддержка строковых аргументов в будущем может зависеть от новых настроек совместимости MySQL и потому что анализ строк обычно медленный, рекомендуется не использовать его.
Синтаксис
Аргументы
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.
Синтаксис
Аргументы
datetime— Дата или дата с временем для получения года.DateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает год заданной даты или времени 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 и потому что парсинг строк в общем медленный, рекомендуется не использовать её.
Синтаксис
Аргументы
datetime— Дата или дата с временем для получения года и недели.DateилиDateTimemode— Необязательно. Режим от0до9, устанавливающий первый день недели и диапазон номера недели. По умолчанию0. -timezone— Необязательно. Временная зона.String
Возвращаемое значение
Возвращает год и номер недели в виде комбинированного целого числа. UInt32
Примеры
Получить комбинации год-неделя с разными режимами
today
Введено в: v1.1
Возвращает текущую дату на момент анализа запроса. То же самое, что и toDate(now()).
Синтаксис
Аргументы
- Нет. Возвращаемое значение
Возвращает текущую дату Date
Примеры
Пример использования
yesterday
Введено в: v1.1
Принимает ноль аргументов и возвращает дату вчера на одном из моментов анализа запроса.
Синтаксис
Аргументы
- Нет. Возвращаемое значение
Возвращает дату вчера. Date
Примеры
Получить дату вчера