Skip to content

Преобразование типов ​

Приведение значения к другому типу. Нужны, когда поле пришло из источника не в том типе, в котором его требуется считать или сравнивать: число записано строкой, дата — текстом.

Примеры считаются на демо-датасете «Продажи»: заказы, товары и покупатели. Разрез — категория товара, если не сказано иное.

Не все функции доезжают до источника

В режиме прямого запроса формула переводится в 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.

Что дальше ​