INTEGRITY Документация

Функции даты и времени

formatDateTime

Использование:

formatDateTime(<datetime expression>, <format string>[, <timezone string>])

formatDateTime выводит дату и время в виде строки согласно заданной строке формата. См. документацию ClickHouse ↗ список поддерживаемых вариантов форматирования.

Примеры:

-- prints the current YYYY-MM-DD in UTC
formatDateTime(now(), '%Y-%m-%d')

-- prints YYYY-MM-DD in the datetime's timezone
formatDateTime(<a datetime with a timezone>, '%Y-%m-%d')
formatDateTime(toDateTime('2022-12-01 16:17:00', 'America/New_York'), '%Y-%m-%d')

-- prints YYYY-MM-DD in UTC
formatDateTime(<a datetime with a timezone>, '%Y-%m-%d', 'Etc/UTC')
formatDateTime(toDateTime('2022-12-01 16:17:00', 'America/New_York'), '%Y-%m-%d', 'Etc/UTC')

now

Использование:

now()

Возвращает текущее время в виде DateTime.

today Новое

Использование:

today()

Возвращает текущую дату в виде Date.

toDateTime

Использование:

toDateTime(<expression>[, 'timezone string'])

toDateTime преобразует выражение в дату и время. Эта функция не поддерживает часовые пояса в формате ISO 8601; если ваше время указано не в UTC, необходимо задать часовой пояс с помощью второго необязательного аргумента.

Примеры:

-- double1 contains a unix timestamp in seconds
toDateTime(double1)

-- blob1 contains an datetime in the format 'YYYY-MM-DD hh:mm:ss'
toDateTime(blob1)

-- literal values:
toDateTime(355924804) -- unix timestamp
toDateTime('355924804') -- string containing unix timestamp
toDateTime('1981-04-12 12:00:04') -- string with datetime in 'YYYY-MM-DD hh:mm:ss' format

-- interpret a date relative to New York time
toDateTime('2022-12-01 16:17:00', 'America/New_York')

toYear Новое

Использование:

toYear(<datetime>)

toYear возвращает год из даты и времени.

Примеры:

-- returns the number 2025
toYear(toDateTime('2025-10-27 00:00:00'))

toMonth Новое

Использование:

toMonth(<datetime>)

toMonth возвращает год из даты и времени.

Примеры:

-- returns the number 10
toMonth(toDateTime('2025-10-27 00:00:00'))

toDayOfWeek Новое

Использование:

toDayOfWeek(<datetime>)

toDayOfWeek принимает дату и время и возвращает числовой день недели.

Возвращает 1 для обозначения понедельника, 2 для вторника и так далее.

Примеры:

-- returns the number 1 for Monday 27th October 2025
toDayOfWeek(toDateTime('2025-10-27 00:00:00'))

-- returns the number 2 for Tuesday 28th October 2025
toDayOfWeek(toDateTime('2025-10-28 00:00:00'))

-- returns the number 7 for Sunday 2nd November 2025
toDayOfWeek(toDateTime('2025-11-02 00:00:00'))

toDayOfMonth Новое

Использование:

toDayOfMonth(<datetime>)

toDayOfMonth возвращает день месяца из даты и времени.

Примеры:

-- returns the number 27
toDayOfMonth(toDateTime('2025-10-27 00:00:00'))

toHour Новое

Использование:

toHour(<datetime>)

toHour возвращает час суток из даты и времени.

Примеры:

-- returns the number 9
toHour(toDateTime('2025-10-27 09:11:13'))

toMinute Новое

Использование:

toMinute(<datetime>)

toMinute возвращает минуту часа из даты и времени.

Примеры:

-- returns the number 11
toMinute(toDateTime('2025-10-27 09:11:13'))

toSecond Новое

Использование:

toSecond(<datetime>)

toSecond возвращает секунду минуты из даты и времени.

Примеры:

-- returns the number 13
toSecond(toDateTime('2025-10-27 09:11:13'))

toUnixTimestamp

Использование:

toUnixTimestamp(<datetime>)

toUnixTimestamp преобразует дату и время в целочисленную метку времени Unix.

Примеры:

-- get the current unix timestamp
toUnixTimestamp(now())

toStartOfInterval

Использование:

toStartOfInterval(<datetime>, INTERVAL '<n>' <unit>[, <timezone string>])

toStartOfInterval округляет дату и время вниз до ближайшего кратного заданному интервалу. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round the current time down to the nearest 15 minutes
toStartOfInterval(now(), INTERVAL '15' MINUTE)

-- round a timestamp down to the day
toStartOfInterval(timestamp, INTERVAL '1' DAY)

-- count the number of datapoints filed in each hourly window
SELECT
  toStartOfInterval(timestamp, INTERVAL '1' HOUR) AS hour,
  sum(_sample_interval) AS count
FROM your_dataset
GROUP BY hour
ORDER BY hour ASC

toStartOfYear Новое

Использование:

toStartOfYear(<datetime>)

toStartOfYear округляет дату и время вниз до начала года. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-01-01 00:00:00
toStartOfYear(toDateTime('2025-10-27 00:00:00'))

toStartOfMonth Новое

Использование:

toStartOfMonth(<datetime>)

toStartOfMonth округляет дату и время вниз до начала месяца. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-10-01 00:00:00
toStartOfMonth(toDateTime('2025-10-27 00:00:00'))

toStartOfWeek Новое

Использование:

toStartOfWeek(<datetime>)

toStartOfWeek округляет дату и время вниз до начала недели. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Считает понедельник первым днём недели.

Примеры:

-- round a time on a Monday down to Monday 2025-10-27 00:00:00
toStartOfWeek(toDateTime('2025-10-27 00:00:00'))

-- round a time on a Wednesday down to Monday 2025-10-27 00:00:00
toStartOfWeek(toDateTime('2025-10-29 00:00:00'))

toStartOfDay Новое

Использование:

toStartOfDay(<datetime>)

toStartOfDay округляет дату и время вниз до начала суток. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-10-27 00:00:00
toStartOfDay(toDateTime('2025-10-27 00:00:00'))

toStartOfHour Новое

Использование:

toStartOfHour(<datetime>)

toStartOfHour округляет дату и время вниз до начала часа. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-10-27 16:00:00
toStartOfHour(toDateTime('2025-10-27 16:55:25'))

toStartOfFifteenMinutes Новое

Использование:

toStartOfFifteenMinutes(<datetime>)

toStartOfFifteenMinutes округляет дату и время вниз до ближайших пятнадцати минут. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-10-27 16:45:00
toStartOfFifteenMinutes(toDateTime('2025-10-27 16:55:25'))

toStartOfTenMinutes Новое

Использование:

toStartOfTenMinutes(<datetime>)

toStartOfTenMinutes округляет дату и время вниз до ближайших десяти минут. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-10-27 16:50:00
toStartOfTenMinutes(toDateTime('2025-10-27 16:55:25'))

toStartOfFiveMinutes Новое

Использование:

toStartOfFiveMinutes(<datetime>)

toStartOfFiveMinutes округляет дату и время вниз до ближайших пяти минут. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-10-27 16:55:00
toStartOfFiveMinutes(toDateTime('2025-10-27 16:55:25'))

toStartOfMinute Новое

Использование:

toStartOfMinute(<datetime>)

toStartOfMinute округляет дату и время вниз до ближайшей минуты. Это может быть полезно при группировке данных в равные по размеру временные интервалы.

Примеры:

-- round a timestamp down to 2025-10-27 16:55:00
toStartOfMinute(toDateTime('2025-10-27 16:55:25'))

toYYYYMM Новое

Использование:

toYYYYMM(<datetime>)

toYYYYMM возвращает число, представляющее год и месяц даты и времени. Например, дата и время 2025-05-03 вернул бы число 202505.

Примеры:

-- returns the number 202510
toYYYYMM(toDateTime('2025-10-27 16:55:25'))