Оформление
Функции даты и времени
Извлечение частей даты, сдвиги и усечение до периода. С их помощью из одного поля с датой получают разрезы вроде года, месяца или дня недели и строят периоды для сравнения.
Примеры считаются на демо-датасете «Продажи»: заказы, товары и покупатели. Разрез — категория товара, если не сказано иное.
Не все функции доезжают до источника
В режиме прямого запроса формула переводится в SQL вашей базы, и часть функций в её диалекте отсутствует. У таких ниже стоит строка «В прямом запросе…» с перечнем баз, на которых расчёт не соберётся. Oracle, Firebird и Trino в этот перечень не входят: на них в прямом запросе не строится большинство виджетов — поддержка функций источниками.
DATEADD
DATEADD( date [, unit [, n ] ] )Сдвигает дату на n единиц; по умолчанию на один день. Смещение — константа.
Пример.
DATEADD([orders.order_date], 'day', -7)Результат — дата на неделю раньше: 2026-07-24 вместо 2026-07-31.
DATEPART
DATEPART( date, unit )Часть даты по имени единицы — то же, что одноимённая функция: DATEPART(d, 'month') равно MONTH(d).
Пример.
MAX(DATEPART([orders.order_date], 'quarter'))Номер квартала — 4. Полезна, когда единица приходит параметром и заранее неизвестна.
В прямом запросе не работает на: MS SQL Server.
DATETRUNC
DATETRUNC( date, unit )Округляет дату вниз до единицы: year, quarter, month, day, hour, minute, second.
Пример.
DATETRUNC([orders.order_date], 'month')Результат — начало месяца заказа — 2026-07-01.
В прямом запросе не работает на: H2, Vertica.
DAY
DAY( date )День месяца.
Пример.
MAX(DAY([orders.order_date]))Наибольший день месяца среди заказов категории — 31.
В прямом запросе не работает на: MS SQL Server.
DAYOFWEEK
DAYOFWEEK( date )День недели.
Пример.
MAX(DAYOFWEEK([orders.order_date]))7 — воскресенье: неделя нумеруется с понедельника.
В прямом запросе не работает на: ClickHouse, MySQL, MariaDB, MS SQL Server.
HOUR
HOUR( datetime )Часы.
Нужно поле с временем
На поле типа «дата» без времени функция отвечает 500 Внутренняя ошибка сервера — без пояснения, чего ей не хватило. Проверьте тип поля: часы, минуты и секунды берутся только из «даты и времени».
MINUTE
MINUTE( datetime )Минуты.
Нужно поле с временем
На поле типа «дата» без времени функция отвечает 500 Внутренняя ошибка сервера — без пояснения, чего ей не хватило. Проверьте тип поля: часы, минуты и секунды берутся только из «даты и времени».
MONTH
MONTH( date )Месяц даты (1–12).
Пример.
MAX(MONTH([orders.order_date]))12 — в категории есть декабрьские заказы. Для разреза по месяцам с сохранением года берите DATETRUNC: MONTH вернёт номер без привязки к году, и декабри разных лет сольются в одну группу.
В прямом запросе не работает на: MS SQL Server.
NOW
NOW()Текущие дата и время.
Пример.
MAX(NOW())Момент выполнения запроса, например 2026-08-27T14:18:55Z. Значение берётся на стороне платформы, поэтому одинаково для всех строк выборки.
QUARTER
QUARTER( date )Квартал даты (1–4).
Пример.
MAX(QUARTER([orders.order_date]))4 — есть заказы четвёртого квартала.
В прямом запросе не работает на: MS SQL Server.
SECOND
SECOND( datetime )Секунды.
Нужно поле с временем
На поле типа «дата» без времени функция отвечает 500 Внутренняя ошибка сервера — без пояснения, чего ей не хватило. Проверьте тип поля: часы, минуты и секунды берутся только из «даты и времени».
TODAY
TODAY()Текущая дата.
Пример.
MAX(TODAY())Сегодняшняя дата с нулевым временем. Основа для относительных периодов — «с начала месяца», «за последние 30 дней».
WEEK
WEEK( date )Номер недели.
Пример.
MAX(WEEK([orders.order_date]))52 — последняя неделя года.
В прямом запросе не работает на: MS SQL Server.
YEAR
YEAR( date )Год даты.
Пример.
YEAR([orders.order_date])Результат — 2025 или 2026: демо-данные охватывают июль 2025 — июль 2026.
В прямом запросе не работает на: MS SQL Server.
Что дальше
- Все функции списком — каталог с поиском по странице.
- Вычисляемые поля — где и как написать формулу.