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
