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 string
of format value unit
into a number, where value
is the fractional number of unit
values:
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