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.

Предыдущая
Следующая