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 formatvalue unit
into a number, wherevalue
is the fractional number ofunit
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