Преобразование типов#
Неявное преобразование типов#
Trino автоматически преобразует числовые и строковые значения в целевой
тип, если такое преобразование возможно. Trino не выполняет
автоматическое преобразование между числовыми и строковыми типами.
Например, запрос, ожидающий VARCHAR, не будет автоматически
конвертировать значение BIGINT в эквивалентный VARCHAR.
Явное преобразование типов#
- cast(value AS type) type#
Приводит значение к заданному типу.
- try_cast(value AS type) type#
Приводит значение к заданному типу. Возвращает значение
NULL, если приведение не удалось.
Вспомогательные функции#
- format(format, args...) varchar#
Возвращает отформатированную строку, используя шаблон форматирования
formatи аргументы: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(string)#
Преобразует строку
stringформата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
Функция поддерживает следующие единицы измерения:
Единица
Описание
Значение
BBytes
1
kBKilobytes
1024
MBMegabytes
10242
GBGigabytes
10243
TBTerabytes
10244
PBPetabytes
10245
EBExabytes
10246
ZBZettabytes
10247
YBYottabytes
10248
- typeof(expr) varchar#
Возвращает имя типа возвращаемого выражением значения:
SELECT typeof(123); -- integer SELECT typeof('cat'); -- varchar(3) SELECT typeof(cos(2) + 1.5); -- double