转换函数

Presto 会在可能的情况下隐式地将数字和字符值转换为正确的类型。Presto 不会在字符和数字类型之间进行转换。例如,期望 varchar 的查询不会自动将 bigint 值转换为等效的 varchar。

如有必要,可以将值显式转换为特定类型。

转换函数

cast(value AS type) -> type()

将值显式转换为类型。这可用于将 varchar 转换为数字值类型,反之亦然。

try_cast(value AS type) -> type()

cast() 类似,但在转换失败时返回 null。

注意

将字符串转换为整数类型(如 TINYINTSMALLINTINTEGERBIGINT)时,允许字符串中存在前导和尾随空格。请参阅 整数

数据大小

parse_presto_data_size 函数支持以下单位

单位

描述

B

字节

1

kB

千字节

1024

MB

兆字节

10242

GB

吉字节

10243

TB

太字节

10244

PB

拍字节

10245

EB

艾字节

10246

ZB

泽字节

10247

YB

尧字节

10248

parse_presto_data_size(string) -> decimal(38)

将格式为 value unitstring 解析为一个数字,其中 valueunit 值的小数部分

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