DATETRUNC
Синтаксис
DATETRUNC( datetime, unit [ , number ] )
Описание
Возвращает дату, округленную по аргументу unit
.
Если задан аргумент number
, то происходит округление до этого количества временных единиц. Отсутствие аргумента эквивалентно значению 1
.
Поддерживаемые значения unit
:
"second"
;"minute"
;"hour"
;"day"
(при заданномnumber
используется номер дня в году);"week"
;"month"
;"quarter"
;"year"
.
При использовании функции с тремя аргументами, она обрабатывается на стороне ClickHouse® функцией toStartOfInterval. Округление выполняется относительно определенного момента времени в соответствии с приведенной в описании функции таблицей. Например:
DATETRUNC(#2018-07-12 11:07:13#, "month", 4) = #2018-05-01 00:00:00#
Для аргумента unit
со значением month
округление считается от даты 1900-01-01
. Между датами 2018-07-12
и 1900-01-01
прошло 1422 месяца. Если округлить это число до ближайшего числа, которое делится на 4 (аргумент number
), то получится 1420 месяцев. Таким образом, если к дате 1900-01-01
прибавить 1420 месяцев, то получится значение 2018-05-01
.
Типы аргументов:
datetime
—Дата | Дата и время
unit
—Строка
number
—Целое число
Возвращаемый тип: Совпадает с типом аргументов (datetime
)
Примечание
Значения аргументов (unit
, number
) должны быть константами.
Примечание
Функция с тремя аргументами доступна только для источников ClickHouse
версии 21.8
и выше.
Примеры
DATETRUNC(#2018-07-12 11:07:13#, "minute") = #2018-07-12 11:07:00#
DATETRUNC(#2018-07-12#, "year", 5) = #2015-01-01#
DATETRUNC(#2018-07-12 11:07:13#, "second", 5) = #2018-07-12 11:07:10#
Поддержка источников данных
ClickHouse 21.8
, Microsoft SQL Server 2017 (14.0)
, MySQL 5.7
, Oracle Database 12c (12.1)
, PostgreSQL 9.3
, YDB
.