Функции для работы с датами и временем
Большинство функций в этом разделе принимают необязательный аргумент часового пояса, например, 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*
илиDecimal
timezone
— Название часового пояса.String
Возвращаемое значение
Возвращает значение DateTime
, полученное из предоставленных аргументов DateTime
Примеры
Пример
YYYYMMDDhhmmssToDateTime64
Введено в: v23.9
Преобразует число, содержащее год, месяц, день, час, минуту и секунду, в DateTime64
.
Эта функция является противоположностью функции toYYYYMMDDhhmmss()
.
Вывод не определён, если входные данные не закодируют допустимое значение DateTime64
.
Синтаксис
Аргументы
YYYYMMDDhhmmss
— Число, содержащее год, месяц, день, час, минуту и секунду.(U)Int*
илиFloat*
илиDecimal
precision
— Точность для дробной части (0-9).UInt8
timezone
— Название часового пояса.String
Возвращаемое значение
Возвращает значение DateTime64
из предоставленных аргументов DateTime64
Примеры
Пример
addDate
Введено в: v23.9
Добавляет временной интервал к указанной дате, дате с временем или строке, закодированной как дата или дата с временем. Если добавление приводит к значению, выходящему за пределы типа данных, результат не определён.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляетсяinterval
.Date
илиDate32
илиDateTime
илиDateTime64
илиString
interval
— Интервал для добавления.Interval
Возвращаемое значение
Возвращает дату или дату с временем, полученные путем добавления interval
к datetime
. Date
или Date32
или DateTime
или DateTime64
Примеры
Добавить интервал к дате
addDays
Введено в: v1.1
Добавляет указанное количество дней к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество дней.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество дней для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
дней. Date
или Date32
или DateTime
или DateTime64
Примеры
Добавить дни к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addHours
Введено в: v1.1
Добавляет указанное количество часов к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество часов.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество часов для добавления.(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
илиString
num
— Количество микросекунд для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает date_time
плюс num
микросекунд DateTime64
Примеры
Добавить микросекунды к различным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addMilliseconds
Введено в: v22.6
Добавляет указанное количество миллисекунд к дате с временем или строке, закодированной как дата с временем.
Синтаксис
Аргументы
datetime
— Дата с временем, к которой добавляется указанное количество миллисекунд.DateTime
илиDateTime64
илиString
num
— Количество миллисекунд для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
миллисекунд DateTime64
Примеры
Добавить миллисекунды к различным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addMinutes
Введено в: v1.1
Добавляет указанное количество минут к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество минут.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество минут для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
минут DateTime
или DateTime64(3)
Примеры
Добавить минуты к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addMonths
Введено в: v1.1
Добавляет указанное количество месяцев к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество месяцев.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество месяцев для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
месяцев Date
или Date32
или DateTime
или DateTime64
Примеры
Добавить месяцы к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addNanoseconds
Введено в: v22.6
Добавляет указанное количество наносекунд к дате с временем или строке, закодированной как дата с временем.
Синтаксис
Аргументы
datetime
— Дата с временем, к которой добавляется указанное количество наносекунд.DateTime
илиDateTime64
илиString
num
— Количество наносекунд для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
наносекунд DateTime64
Примеры
Добавить наносекунды к различным типам даты и времени
Использование альтернативного синтаксиса INTERVAL
addQuarters
Введено в: v20.1
Добавляет указанное количество кварталов к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество кварталов.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество кварталов для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
кварталов Date
или Date32
или DateTime
или DateTime64
Примеры
Добавить кварталы к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addSeconds
Введено в: v1.1
Добавляет указанное количество секунд к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество секунд.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество секунд для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
секунд DateTime
или DateTime64(3)
Примеры
Добавить секунды к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addTupleOfIntervals
Введено в: v22.11
Последовательно добавляет кортеж интервалов к дате или дате с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляются интервалы.Date
илиDate32
илиDateTime
илиDateTime64
intervals
— Кортеж интервалов для добавления кdatetime
.Tuple(Interval)
Возвращаемое значение
Возвращает date
с добавленными intervals
Date
или Date32
или DateTime
или DateTime64
Примеры
Добавить кортеж интервалов к дате
addWeeks
Введено в: v1.1
Добавляет указанное количество недель к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество недель.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество недель для добавления.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
плюс num
недель Date
или Date32
или DateTime
или DateTime64
Примеры
Добавить недели к различным типам дат
Использование альтернативного синтаксиса INTERVAL
addYears
Введено в: v1.1
Добавляет указанное количество лет к дате, дате с временем или строке, закодированной как дата или дата с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, к которой добавляется указанное количество лет.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество лет для добавления.(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
илиDateTime64
enddate
— Второе временное значение для вычитания (уменьшаемое).Date
илиDate32
илиDateTime
илиDateTime64
timezone
— Необязательный. Название часового пояса. Если указано, оно применяется к обоим значениям startdate и enddate. Если не указано, используются часовые пояса startdate и enddate. Если они не совпадают, результат не определён.String
Возвращаемое значение
Возвращает разность между enddate и startdate, выраженную в единицах. Int32
Примеры
Вычислить возраст в часах
Вычислить возраст в различных единицах
changeDay
Введено в: v24.7
Изменяет компонент дня даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime
— Значение, которое нужно изменить.Date
илиDate32
илиDateTime
илиDateTime64
value
— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime
, с изменённым компонентом дня. Date
или Date32
или DateTime
или DateTime64
Примеры
Пример использования
changeHour
Введено в: v24.7
Изменяет компонент часа даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime
— Значение, которое нужно изменить.Date
илиDate32
илиDateTime
илиDateTime64
value
— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime
, с изменённым компонентом часа. DateTime
или DateTime64
Примеры
Пример использования
changeMinute
Введено в: v24.7
Изменяет компонент минуты даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime
— Значение, которое нужно изменить.Date
илиDate32
илиDateTime
илиDateTime64
value
— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime
, с изменённым компонентом минуты. DateTime
или DateTime64
Примеры
Пример использования
changeMonth
Введено в: v24.7
Изменяет компонент месяца даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime
— Значение, которое нужно изменить.Date
илиDate32
илиDateTime
илиDateTime64
value
— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime
, с изменённым компонентом месяца. Date
или Date32
или DateTime
или DateTime64
Примеры
Пример использования
changeSecond
Введено в: v24.7
Изменяет компонент секунды даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime
— Значение, которое нужно изменить.Date
илиDate32
илиDateTime
илиDateTime64
value
— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime
, с изменённым компонентом секунд. DateTime
или DateTime64
Примеры
Пример использования
changeYear
Введено в: v24.7
Изменяет компонент года даты или даты с временем.
Синтаксис
Аргументы
date_or_datetime
— Значение, которое нужно изменить.Date
илиDate32
илиDateTime
илиDateTime64
value
— Новое значение.(U)Int*
Возвращаемое значение
Возвращает значение того же типа, что и date_or_datetime
, с изменённым компонентом года. Date
или Date32
или DateTime
или DateTime64
Примеры
Пример использования
dateName
Введено в: v21.7
Возвращает указанную часть даты.
Возможные значения:
- 'год'
- 'квартал'
- 'месяц'
- 'неделя'
- 'день года'
- 'день'
- 'день недели'
- 'час'
- 'минута'
- 'секунда'
Синтаксис
Аргументы
date_part
— Часть даты, которую вы хотите извлечь.String
datetime
— Значение даты или даты с временем.Date
илиDate32
илиDateTime
илиDateTime64
timezone
— Необязательный. Часовой пояс.String
Возвращаемое значение
Возвращает указанную часть даты. String
Примеры
Извлечение различных частей даты
dateTrunc
Введено в: v20.8
Обрезает значение даты и времени до указанной части даты.
Синтаксис
Аргументы
unit
— Тип интервала, до которого обрезается результат. Аргументunit
не чувствителен к регистру. | Единица | Совместимость | |------------------|---------------------------------| |наносекунда
| Совместимо только с DateTime64 | |микросекунда
| Совместимо только с DateTime64 | |миллисекунда
| Совместимо только с DateTime64 | |секунда
| | |минута
| | |час
| | |день
| | |неделя
| | |месяц
| | |квартал
| | |год
| |String
datetime
— Дата и время.Date
илиDate32
илиDateTime
илиDateTime64
timezone
— Необязательный. Название часового пояса для возвращаемого 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
илиDateTime64
format
— Строка формата с полями замены.String
timezone
— Необязательный. Имя часового пояса для форматированного времени.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
илиDateTime64
format
— Строка формата с полями замены в стиле Joda.String
timezone
— Необязательный. Имя часового пояса для форматированного времени.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
илиDateTime64
time_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
илиDateTime64
format
— Необязательный. Константная строка формата для форматирования вывода.String
timezone
— Необязательный. Константная строка часового пояса.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
илиDateTime64
format
— Необязательный. Константная строка формата, использующая синтаксис Joda для форматирования вывода.String
timezone
— Необязательный. Константная строка часового пояса.String
Возвращаемое значение
Возвращает дату с временем при вызове с одним аргументом или строку при вызове с двумя или тремя аргументами. DateTime
или String
Примеры
Преобразование Unix временной метки с форматом Joda
makeDate
Представлено в: v22.6
Создает Date
из одного из следующих:
- год, месяц и день
- год и день в году
Синтаксис
Аргументы
year
— Номер года.(U)Int*
илиFloat*
илиDecimal
month
— Номер месяца (1-12).(U)Int*
илиFloat*
илиDecimal
day
— День месяца (1-31).(U)Int*
илиFloat*
илиDecimal
day_of_year
— День в году (1-365).(U)Int*
илиFloat*
илиDecimal
Возвращаемое значение
Возвращает значение Date
, сконструированное из предоставленных аргументов Date
.
Примеры
Дата из года, месяца, дня
Дата из года и дня в году
makeDate32
Представлено в: v22.6
Создает Date32
из одного из следующих:
- год, месяц и день
- год и день в году
Синтаксис
Аргументы
year
— Номер года.(U)Int*
илиFloat*
илиDecimal
month
— Номер месяца (1-12).(U)Int*
илиFloat*
илиDecimal
day
— День месяца (1-31).(U)Int*
илиFloat*
илиDecimal
day_of_year
— День в году (1-365).(U)Int*
илиFloat*
илиDecimal
Возвращаемое значение
Возвращает значение Date32
, сконструированное из предоставленных аргументов Date32
.
Примеры
Date32 из года, месяца, дня
Date32 из года и дня в году
makeDateTime
Представлено в: v22.6
Создает DateTime
из года, месяца, дня, часа, минуты и секунды с необязательным часовым поясом.
Синтаксис
Аргументы
year
— Номер года.(U)Int*
илиFloat*
илиDecimal
month
— Номер месяца (1-12).(U)Int*
илиFloat*
илиDecimal
day
— День месяца (1-31).(U)Int*
илиFloat*
илиDecimal
hour
— Час (0-23).(U)Int*
илиFloat*
илиDecimal
minute
— Минута (0-59).(U)Int*
илиFloat*
илиDecimal
second
— Секунда (0-59).(U)Int*
илиFloat*
илиDecimal
timezone
— Имя часового пояса.String
Возвращаемое значение
Возвращает значение DateTime
, сконструированное из предоставленных аргументов DateTime
.
Примеры
DateTime из года, месяца, дня, часа, минуты, секунды
makeDateTime64
Представлено в: v22.6
Создает DateTime64
из года, месяца, дня, часа, минуты, секунды с необязательной дробной частью, точностью и часовым поясом.
Синтаксис
Аргументы
year
— Номер года.(U)Int*
илиFloat*
илиDecimal
month
— Номер месяца (1-12).(U)Int*
илиFloat*
илиDecimal
day
— День месяца (1-31).(U)Int*
илиFloat*
илиDecimal
hour
— Час (0-23).(U)Int*
илиFloat*
илиDecimal
minute
— Минута (0-59).(U)Int*
илиFloat*
илиDecimal
second
— Секунда (0-59).(U)Int*
илиFloat*
илиDecimal
fraction
— Дробная часть секунды.(U)Int*
илиFloat*
илиDecimal
precision
— Точность для дробной части (0-9).UInt8
timezone
— Имя часового пояса.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 (наносекунды).UInt8
timezone
— Необязательный. Имя часового пояса для возвращаемого значения.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 (наносекунды).UInt8
timezone
— Необязательный. Имя часового пояса для возвращаемого значения.String
Возвращаемое значение
Возвращает текущую дату и время в момент обработки каждого блока данных с точностью до подсекунды. DateTime64
Примеры
Разница с функцией now64()
serverTimezone
Представлено в: v23.6
Возвращает часовой пояс сервера, т.е. значение настройки timezone
. Если функция выполняется в контексте распределенной таблицы, она генерирует нормальный столбец со значениями, соответствующими каждой шард. В противном случае она создает постоянное значение.
Синтаксис
Аргументы
- Не требуется.
Возвращаемое значение
Возвращает часовой пояс сервера как String
Примеры
Пример использования
subDate
Представлено в: v23.9
Вычитывает временной интервал из указанной даты, даты с временем или даты с закодированной строкой даты или даты с временем. Если вычитание приводит к значению вне границ типа данных, результат неопределен.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой вычитаетсяinterval
.Date
илиDate32
илиDateTime
илиDateTime64
interval
— Интервал для вычитания.Interval
Возвращаемое значение
Возвращает дату или дату с временем, полученные путем вычитания interval
из datetime
. Date
или Date32
или DateTime
или DateTime64
Примеры
Вычитание интервала из даты
subtractDays
Представлено в: v1.1
Вычитает заданное количество дней из даты, даты с временем или даты с закодированной строкой даты или даты с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой вычитается заданное количество дней.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество дней для вычитания.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
дней Date
или Date32
или DateTime
или DateTime64
Примеры
Вычитание дней из различных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractHours
Представлено в: v1.1
Вычитает заданное количество часов из даты, даты с временем или даты с закодированной строкой даты или даты с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой вычитается заданное количество часов.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество часов для вычитания.(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
илиString
num
— Количество микросекунд для вычитания.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
микросекунд DateTime64
Примеры
Вычитание микросекунд из различных типов даты и времени
Использование альтернативного синтаксиса INTERVAL
subtractMilliseconds
Введено в: v22.6
Вычитает заданное количество миллисекунд из даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата с временем, из которой нужно вычесть заданное количество миллисекунд.DateTime
илиDateTime64
илиString
num
— Количество миллисекунд, которые нужно вычесть.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
миллисекунд DateTime64
Примеры
Вычитание миллисекунд из различных типов дат и времен
Использование альтернативного синтаксиса INTERVAL
subtractMinutes
Введено в: v1.1
Вычитает заданное количество минут из даты или даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой нужно вычесть заданное количество минут.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество минут, которые нужно вычесть.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
минут DateTime
или DateTime64(3)
Примеры
Вычитание минут из различных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractMonths
Введено в: v1.1
Вычитает заданное количество месяцев из даты или даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой нужно вычесть заданное количество месяцев.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество месяцев, которые нужно вычесть.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
месяцев Date
или Date32
или DateTime
или DateTime64
Примеры
Вычитание месяцев из различных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractNanoseconds
Введено в: v20.1
Вычитает заданное количество наносекунд из даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата с временем, из которой нужно вычесть заданное количество наносекунд.DateTime
илиDateTime64
илиString
num
— Количество наносекунд, которые нужно вычесть.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
наносекунд DateTime64
Примеры
Вычитание наносекунд из различных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractQuarters
Введено в: v20.1
Вычитает заданное количество кварталов из даты, даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой нужно вычесть заданное количество кварталов.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество кварталов, которые нужно вычесть.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
кварталов Date
или Date32
или DateTime
или DateTime64
Примеры
Вычитание кварталов из различных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractSeconds
Введено в: v1.1
Вычитает заданное количество секунд из даты, даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой нужно вычесть заданное количество секунд.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество секунд, которые нужно вычесть.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
секунд DateTime
или DateTime64(3)
Примеры
Вычитание секунд из различных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractTupleOfIntervals
Введено в: v22.11
Последовательно вычитает кортеж интервалов из даты или даты с временем.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой нужно вычесть интервалы.Date
илиDate32
илиDateTime
илиDateTime64
intervals
— Кортеж интервалов, которые нужно вычесть изdatetime
.Tuple(Interval)
Возвращаемое значение
Возвращает date
с вычтенными intervals
Date
или Date32
или DateTime
или DateTime64
Примеры
Вычитание кортежа интервалов из даты
subtractWeeks
Введено в: v1.1
Вычитает заданное количество недель из даты, даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой нужно вычесть заданное количество недель.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество недель, которые нужно вычесть.(U)Int*
илиFloat*
Возвращаемое значение
Возвращает datetime
минус num
недель Date
или Date32
или DateTime
или DateTime64
Примеры
Вычитание недель из различных типов дат
Использование альтернативного синтаксиса INTERVAL
subtractYears
Введено в: v1.1
Вычитает заданное количество лет из даты, даты с временем или даты с временем в строковом формате.
Синтаксис
Аргументы
datetime
— Дата или дата с временем, из которой нужно вычесть заданное количество лет.Date
илиDate32
илиDateTime
илиDateTime64
илиString
num
— Количество лет, которые нужно вычесть.(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
илиDateTime64
enddate
— Второе значение времени, из которого нужно вычесть (уменьшаемое).Date
илиDate32
илиDateTime
илиDateTime64
timezone
— Необязательный. Название часового пояса. Если указано, оно применяется как кstartdate
, так и кenddate
. Если не указано, используются часовые поясаstartdate
иenddate
. Если они не совпадают, результат неопределен.String
Возвращаемое значение
Возвращает разницу между enddate
и startdate
, выраженную в unit
. Int64
Примеры
Вычисление разницы дат в часах
Вычисление разницы дат в различных единицах
timeSlot
Введено в: v1.1
Округляет время до начала полуторного интервала.
Хотя эта функция может принимать значения расширенных типов Date32
и DateTime64
в качестве аргумента,
передача времени вне нормального диапазона (год 1970 по 2149 для Date
/ 2106 для DateTime
) даст неверные результаты.
Синтаксис
Аргументы
time
— Время, которое нужно округлить до начала полуторного интервала.DateTime
илиDate32
илиDateTime64
time_zone
— Необязательный. Константное значение типа String или выражение, представляющее часовой пояс.String
Возвращаемое значение
Возвращает время, округленное до начала полуторного интервала. DateTime
Примеры
Округление времени до полуторного интервала
timeSlots
Введено в: v1.1
Для временного интервала, начинающегося с StartTime
и продолжающегося в течение Duration
секунд, возвращает массив моментов времени, состоящий из точек из этого интервала, округленных вниз до Size
в секундах. Size
— необязательный параметр, по умолчанию установленный на 1800 (30 минут).
Это необходимо, например, при поиске просмотров страниц в соответствующей сессии.
Для DateTime64
масштаб возвращаемого значения может отличаться от масштаба StartTime
. Принимается максимальный масштаб среди всех заданных аргументов.
Синтаксис
Аргументы
StartTime
— Начальное время для интервала.DateTime
илиDateTime64
Duration
— Продолжительность интервала в секундах.UInt32
илиDateTime64
Size
— Необязательный. Размер временных слотов в секундах. По умолчанию 1800 (30 минут).UInt32
илиDateTime64
Возвращаемое значение
Возвращает массив DateTime/DateTime64 (тип возвращаемого значения соответствует типу StartTime
). Для DateTime64 масштаб возвращаемого значения может отличаться от масштаба StartTime
- максимальный масштаб среди всех заданных аргументов принимается. Array(DateTime)
или Array(DateTime64)
Примеры
Генерация временных слотов для интервала
timestamp
Введено в: v23.9
Приводит первый аргумент expr
к типу DateTime64(6)
.
Если предоставлен второй аргумент expr_time
, он добавляет указанное время к преобразованному значению.
Синтаксис
Аргументы
expr
— Дата или дата с временем.String
expr_time
— Необязательный. Время, которое нужно добавить к преобразованному значению.String
Возвращаемое значение
Возвращает преобразованное значение expr
, или expr
с добавленным временем DateTime64(6)
Примеры
Преобразование строки даты в DateTime64(6)
Добавление времени к строке даты
timezone
Введено в: v21.4
Возвращает название часового пояса текущей сессии или преобразует смещение часового пояса или его название в каноническое название часового пояса.
Синтаксис
Аргументы
- Нет. Возвращаемое значение
Возвращает каноническое название часового пояса в виде String
Примеры
Пример использования
timezoneOf
Введено в: v21.4
Возвращает название часового пояса значения DateTime
или DateTime64
.
Синтаксис
Аргументы
datetime
— Значение типа.DateTime
илиDateTime64
timezone
— Необязательный. Название часового пояса для преобразования часового пояса значения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
илиDateTime64
mode
— Необязательный. Целое число, указывающее режим недели (0-3). По умолчанию 0, если пропущен.UInt8
timezone
— Необязательный. Часовой пояс, который будет использован для преобразования.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
илиDateTime64
time_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
илиDateTime64
mode
— Определяет первый день недели, как указано в функцииtoWeek()
. По умолчанию0
.UInt8
timezone
— Необязательный. Часовой пояс, который будет использован для преобразования. Если не указано, используется часовой пояс сервера.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
илиDateTime64
x
— Число длины интервала. -unit
— Единица интервала: ГОД, КВАРТАЛ, МЕСЯЦ, НЕДЕЛЯ, ДЕНЬ, ЧАС, МИНУТА, СЕКУНДА, МИЛЛИСЕКУНДА, МИКРОСЕКУНДА, НАНОСЕКУНДА. -time_zone
— Необязательный. Название временной зоны в виде строки. -origin
— Необязательный. Точка отсчета для вычислений (только для второй перегрузки).
Возвращаемое значение
Возвращает начало интервала, содержащего входное значение. DateTime
Примеры
Основное округление интервала
Использование точки отсчета
toStartOfMicrosecond
Представлено в: v22.6
Округляет дату с временем до начала микросекунд.
Синтаксис
Аргументы
datetime
— Дата и время.DateTime64
timezone
— Необязательный. Часовой пояс для возвращаемого значения. Если не указано, функция использует часовой пояс параметраvalue
.String
Возвращаемое значение
Входное значение без подмикросекунд. DateTime64
Примеры
Запрос без временной зоны
Запрос с временной зоной
toStartOfMillisecond
Представлено в: v22.6
Округляет дату с временем до начала миллисекунд.
Синтаксис
Аргументы
datetime
— Дата и время.DateTime64
timezone
— Необязательный. Часовой пояс для возвращаемого значения. Если не указано, функция использует часовой пояс параметра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
— Дата и время.DateTime64
timezone
— Необязательный. Часовой пояс для возвращаемого значения. Если не указано, функция использует часовой пояс параметра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
— Дата и время, из которых нужно удалить подсекунды.DateTime64
timezone
— Необязательный. Часовой пояс для возвращаемого значения. Если не указано, функция использует часовой пояс параметра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
илиDateTime64
mode
— Определяет первый день недели, как описано в функцииtoWeek()
. По умолчанию0
.UInt8
timezone
— Часовой пояс, который используется для преобразования. Если не указано, используется часовой пояс сервера.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
илиDateTime64
timezone
— Необязательный. Часовой пояс для возвращаемого значения.String
Возвращаемое значение
Возвращает компонент времени даты или даты с временем в виде смещения относительно фиксированной точки времени (выбранной как 1970-01-02, в настоящее время). DateTime
Примеры
Вычисление разницы во времени между двумя датами
toTimezone
Представлено в: v1.1
Преобразует DateTime
или DateTime64
в указанную временную зону.
Внутреннее значение (количество секунд unix) данных не изменяется.
Изменяются только атрибут временной зоны значения и строковое представление значения.
Синтаксис
Аргументы
date
— Значение для преобразования.DateTime
илиDateTime64
timezone
— Название целевой временной зоны.String
Возвращаемое значение
Возвращает тот же временной штамп, что и на входе, но с указанным временным поясом DateTime
или DateTime64
Примеры
Пример использования
toUTCTimestamp
Представлено в: v23.8
Преобразует дату или дату с временем из одной временной зоны в временной штамп UTC. Эта функция в основном включена для совместимости с Apache Spark и аналогичными фреймворками.
Синтаксис
Аргументы
datetime
— Дата или дата с временем типа const значение или выражение.DateTime
илиDateTime64
time_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
илиString
timezone
— Необязательный. Часовой пояс, который использовать для преобразования. Если не указано, используется часовой пояс сервера.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
илиDateTime
mode
— Необязательный. Режим0
-9
определяет первый день недели и диапазон номер недели. По умолчанию0
. -time_zone
— Необязательный. Часовой пояс.String
Возвращаемое значение
Возвращает номер недели в соответствии с указанным режимом. UInt32
Примеры
Получить номера недель с различными режимами
toYYYYMM
Введено в: v1.1
Конвертирует дату или дату с временем в число UInt32
, содержащее номер года и месяца (YYYY * 100 + MM). Принимает второй необязательный аргумент временной зоны. Если он указан, временная зона должна быть строковой константой.
Эта функция является противоположной функции YYYYMMDDToDate()
.
Синтаксис
Аргументы
datetime
— Дата или дата с временем для конвертации.Date
илиDate32
илиDateTime
илиDateTime64
timezone
— Необязательно. Временная зона для конвертации. Если указана, временная зона должна быть строковой константой.String
Возвращаемое значение
Возвращает число UInt32, содержащее номер года и месяца (YYYY * 100 + MM). UInt32
Примеры
Конвертация текущей даты в формат YYYYMM
toYYYYMMDD
Введено в: v1.1
Конвертирует дату или дату с временем в число UInt32
, содержащее номер года, месяца и дня (YYYY * 10000 + MM * 100 + DD). Принимает второй необязательный аргумент временной зоны. Если он указан, временная зона должна быть строковой константой.
Синтаксис
Аргументы
datetime
— Дата или дата с временем для конвертации.Date
илиDate32
илиDateTime
илиDateTime64
timezone
— Необязательно. Временная зона для конвертации. Если указана, временная зона должна быть строковой константой.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
илиDateTime64
timezone
— Необязательно. Временная зона для конвертации. Если указана, временная зона должна быть строковой константой.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
илиDateTime
mode
— Необязательно. Режим от0
до9
, устанавливающий первый день недели и диапазон номера недели. По умолчанию0
. -timezone
— Необязательно. Временная зона.String
Возвращаемое значение
Возвращает год и номер недели в виде комбинированного целого числа. UInt32
Примеры
Получить комбинации год-неделя с разными режимами
today
Введено в: v1.1
Возвращает текущую дату на момент анализа запроса. То же самое, что и toDate(now())
.
Синтаксис
Аргументы
- Нет. Возвращаемое значение
Возвращает текущую дату Date
Примеры
Пример использования
yesterday
Введено в: v1.1
Принимает ноль аргументов и возвращает дату вчера на одном из моментов анализа запроса.
Синтаксис
Аргументы
- Нет. Возвращаемое значение
Возвращает дату вчера. Date
Примеры
Получить дату вчера