Преобразование типов#
Неявное преобразование типов#
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
Функция поддерживает следующие единицы измерения:
Единица
Описание
Значение
B
Bytes
1
kB
Kilobytes
1024
MB
Megabytes
10242
GB
Gigabytes
10243
TB
Terabytes
10244
PB
Petabytes
10245
EB
Exabytes
10246
ZB
Zettabytes
10247
YB
Yottabytes
10248
- typeof(expr) varchar #
Возвращает имя типа возвращаемого выражением значения:
SELECT typeof(123); -- integer SELECT typeof('cat'); -- varchar(3) SELECT typeof(cos(2) + 1.5); -- double