Presto | 转换函数
Presto 可以隐式地将数字和字符值转换为适当的数据类型,前提是这种转换是可行的。然而,Presto 不会在字符类型和数字类型间隐式转换。例如,一个期望获得 varchar
类型结果的查询不会自动将 bigint
类型的值转换为对应的 varchar
类型。
如果有需要,值可以通过显式转换来变换为特定的数据类型。
转换函数
cast(value AS type) → type
可以通过显式转换将一个值变换为特定的数据类型。这可以用于将 varchar
类型的值转换为数字类型,反之也可以。
try_cast(value AS type) → type
与 cast()
函数相似,不同之处在于如果转换失败,它会返回 null 值。
数据大小
parse_presto_data_size(string)
可以将格式为 value unit
的字符串解析为一个数字,其中:
value
为小数,表示 unit
值的数值部分;
unit
为数据大小的单位,如B、KB、MB、GB等。
parse_presto_data_size
函数支持以下数据大小单位:
单位 | 描述 | 值 |
---|---|---|
B | Bytes | 1 |
kB | Kilobytes | 1024 |
MB | Megabytes | 1024^2 |
GB | Gigabytes | 1024^3 |
TB | Terabytes | 1024^4 |
PB | Petabytes | 10245^ |
EB | Exabytes | 1024^6 |
ZB | Zettabytes | 1024^7 |
YB | Yottabytes | 1024^8 |
示例
1 | SELECT parse_presto_data_size('1B'); -- 1 |
其他
typeof(expr) → varchar
根据提供的表达式,推断并返回表达式中的数据类型名称:
1 | SELECT typeof(123); -- integer |
(END)
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.