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 |
|---|---|---|
|
Bytes |
1 |
|
Kilobytes |
1024 |
|
Megabytes |
10242 |
|
Gigabytes |
10243 |
|
Terabytes |
10244 |
|
Petabytes |
10245 |
|
Exabytes |
10246 |
|
Zettabytes |
10247 |
|
Yottabytes |
10248 |
- parse_presto_data_size(string) -> decimal(38)¶
Parses
stringof formatvalue unitinto a number, wherevalueis the fractional number ofunitvalues:SELECT parse_presto_data_size('1B'); -- 1 SELECT parse_presto_data_size('1kB'); -- 1024 SELECT parse_presto_data_size('1MB'); -- 1048576 SELECT parse_presto_data_size('2.3MB'); -- 2411724
Miscellaneous¶
- typeof(expr) -> varchar()¶
Returns the name of the type of the provided expression:
SELECT typeof(123); -- integer SELECT typeof('cat'); -- varchar(3) SELECT typeof(cos(2) + 1.5); -- double