Функции преобразования#
Trino неявно преобразует числовые и символьные значения к корректному типу, если такое преобразование возможно. Trino не выполняет преобразование между символьными и числовыми типами. Например, запрос, который ожидает varchar, не преобразует автоматически значение bigint в эквивалентный varchar.
При необходимости значения можно явно привести к определенному типу.
Функции преобразования#
- cast(value AS type) type#
Явно приводит значение к типу. Это можно использовать для приведения varchar к числовому типу и наоборот.
Форматирование#
- format(format, args...) varchar#
Возвращает отформатированную строку, используя указанную строку формата и аргументы:
SELECT format('%s%%', 123); -- '123%' SELECT format('%.5f', pi()); -- '3.14159' SELECT format('%03d', 8); -- '008' SELECT format('%,.2f', 1234567.89); -- '1,234,567.89' SELECT format('%-7s,%7s', 'hello', 'world'); -- 'hello , world' SELECT format('%2$s %3$s %1$s', 'a', 'b', 'c'); -- 'b c a' SELECT format('%1$tA, %1$tB %1$te, %1$tY', date '2006-07-04'); -- 'Tuesday, July 4, 2006'
- format_number(number) varchar#
Возвращает отформатированную строку с использованием обозначения единицы:
SELECT format_number(123456); -- '123K' SELECT format_number(1000000); -- '1M'
Размер данных#
Функция parse_data_size поддерживает следующие единицы:
Единица |
Описание |
Значение |
|---|---|---|
|
Байты |
1 |
|
Килобайты |
1024 |
|
Мегабайты |
10242 |
|
Гигабайты |
10243 |
|
Терабайты |
10244 |
|
Петабайты |
10245 |
|
Эксабайты |
10246 |
|
Зеттабайты |
10247 |
|
Йоттабайты |
10248 |
- parse_data_size(string)#
Разбирает
stringформатаvalue unitв число, гдеvalue— дробное количество значенийunit:SELECT parse_data_size('1B'); -- 1 SELECT parse_data_size('1kB'); -- 1024 SELECT parse_data_size('1MB'); -- 1048576 SELECT parse_data_size('2.3MB'); -- 2411724
Прочее#
- typeof(expr) varchar#
Возвращает имя типа переданного выражения:
SELECT typeof(123); -- integer SELECT typeof('cat'); -- varchar(3) SELECT typeof(cos(2) + 1.5); -- double