转换函数¶
Presto 会在可能的情况下隐式地将数字和字符值转换为正确的类型。Presto 不会在字符和数字类型之间进行转换。例如,期望 varchar 的查询不会自动将 bigint 值转换为等效的 varchar。
如有必要,可以将值显式转换为特定类型。
转换函数¶
- cast(value AS type) -> type()¶
将值显式转换为类型。这可用于将 varchar 转换为数字值类型,反之亦然。
- try_cast(value AS type) -> type()¶
与
cast()
类似,但在转换失败时返回 null。
注意
将字符串转换为整数类型(如 TINYINT
、SMALLINT
、INTEGER
或 BIGINT
)时,允许字符串中存在前导和尾随空格。请参阅 整数。
数据大小¶
parse_presto_data_size
函数支持以下单位
单位 |
描述 |
值 |
---|---|---|
|
字节 |
1 |
|
千字节 |
1024 |
|
兆字节 |
10242 |
|
吉字节 |
10243 |
|
太字节 |
10244 |
|
拍字节 |
10245 |
|
艾字节 |
10246 |
|
泽字节 |
10247 |
|
尧字节 |
10248 |
- parse_presto_data_size(string) -> decimal(38)¶
将格式为
value unit
的string
解析为一个数字,其中value
是unit
值的小数部分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
杂项¶
- typeof(expr) -> varchar()¶
返回提供的表达式的类型名称
SELECT typeof(123); -- integer SELECT typeof('cat'); -- varchar(3) SELECT typeof(cos(2) + 1.5); -- double