Оформление
Преобразование типов
Приведение значения к другому типу. Нужны, когда поле пришло из источника не в том типе, в котором его требуется считать или сравнивать: число записано строкой, дата — текстом.
Примеры считаются на демо-датасете «Продажи»: заказы, товары и покупатели. Разрез — категория товара, если не сказано иное.
Не все функции доезжают до источника
В режиме прямого запроса формула переводится в SQL вашей базы, и часть функций в её диалекте отсутствует. У таких ниже стоит строка «В прямом запросе…» с перечнем баз, на которых расчёт не соберётся. Oracle, Firebird и Trino в этот перечень не входят: на них в прямом запросе не строится большинство виджетов — поддержка функций источниками.
BOOL
BOOL( value )Преобразует значение в логическое.
Источник пока не исполняет эту функцию
Формула сохранится, а выборка ответит отказом «Функция … пока не поддержана».
DATE
DATE( value )Преобразует значение в дату.
Пример.
MAX(DATE([orders.order_date]))Дата последнего заказа категории: у «Компьютеров» — 2026-07-31. Время отбрасывается, поэтому заказы одного дня сходятся в одно значение.
DATETIME
DATETIME( value )Преобразует значение в дату и время.
Пример.
MAX(DATETIME([orders.order_date]))То же, что DATE, но с сохранением времени. На демо-данных время нулевое — заказы хранятся датой без часов, — поэтому результат совпадает с DATE.
В прямом запросе не работает на: MS SQL Server.
DATETIME_PARSE
DATETIME_PARSE( string )Разбирает строку в дату и время.
Источник пока не исполняет эту функцию
Формула сохранится, а выборка ответит отказом «Функция … пока не поддержана».
DATE_PARSE
DATE_PARSE( string )Разбирает строку в дату.
Источник пока не исполняет эту функцию
Формула сохранится, а выборка ответит отказом «Функция … пока не поддержана».
DB_CAST
DB_CAST( value, type )Приведение типа средствами СУБД.
Источник пока не исполняет эту функцию
Формула сохранится, а выборка ответит отказом «Функция … пока не поддержана».
FLOAT
FLOAT( value )Преобразует значение в дробное число.
Пример.
MAX(FLOAT([orders.quantity]))Наибольшее количество в заказе — 5 — приходит как 5.0. Нужно, когда целое поле участвует в делении: без приведения часть баз округляет результат до целого.
В прямом запросе не работает на: Vertica, MS SQL Server.
INT
INT( value )Преобразует значение в целое число.
Пример.
MAX(INT([orders.amount]))Самый крупный заказ категории без копеек: 49 000 у «Аксессуаров». Дробная часть отбрасывается, а не округляется.
STR
STR( value )Преобразует значение в строку.
Пример.
MAX(STR([orders.order_id]))Номер заказа строкой. Строки сравниваются посимвольно, поэтому «998» окажется больше «1000» — для поиска настоящего максимума приводите к строке уже после агрегата.
В прямом запросе не работает на: Vertica.
Что дальше
- Все функции списком — каталог с поиском по странице.
- Вычисляемые поля — где и как написать формулу.