Conversion Functions

Presto will implicitly convert numeric and character values to the correct type if such a conversion is possible. Presto will not convert between character and numeric types. For example, a query that expects a varchar will not automatically convert a bigint value to an equivalent varchar.

When necessary, values can be explicitly cast to a particular type.

Conversion Functions

cast(value AS type) -> type()

Explicitly cast a value as a type. This can be used to cast a varchar to a numeric value type and vice versa.

try_cast(value AS type) -> type()

Like cast(), but returns null if the cast fails.

Note

When casting strings to integer types such as TINYINT, SMALLINT, INTEGER, or BIGINT, leading and trailing spaces in the string are allowed. See Integer.

Data Size

The parse_presto_data_size function supports the following units:

Unit Description Value
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

parse_presto_data_size(string) -> decimal(38)

Parses string of format value unit into a number, where value is the fractional number of unit values:

1. SELECT parse_presto_data_size('1B'); -- 1
2. SELECT parse_presto_data_size('1kB'); -- 1024
3. SELECT parse_presto_data_size('1MB'); -- 1048576
4. SELECT parse_presto_data_size('2.3MB'); -- 2411724

Miscellaneous

typeof(expr) -> varchar()

Returns the name of the type of the provided expression:

1. SELECT typeof(123); -- integer
2. SELECT typeof('cat'); -- varchar(3)
3. SELECT typeof(cos(2) + 1.5); -- double