流计算 Oceanus 类型转换函数

功能描述:将某个值转为 type 类型。
语法:CAST(value AS type)
示例测试语句:SELECT CAST(var1 AS VARCHAR) FROM TEST;
测试数据和结果。

相关产品
流计算 Oceanus 产品页,含版本规格、价格与购买入口。

一、函数

注意:如果使用 CAST() 函数,将时间段 INTERVAL 转为数字,则结果会是字面值(可能不符合预期)。例如 CAST(INTERVAL '1234' MINUTE AS BIGINT),则结果会是字面值1234,而非时间段表示的毫秒值。

函数名 功能描述
CAST(value AS type) 将某个值转为 type 类型,例如 CAST(hello AS VARCHAR) 会将 hello 字段转为 VARCHAR 类型。
CAN_CAST_TO(str, type) 判断 str 字符串是否可以被转换为 type 指定的类型,返回值为布尔型。返回值可以在 CASE 语句中作为条件使用。例如 CAN_CAST_TO('123456', 'INTEGER') 则返回 True,而 CAN_CAST_TO('a145', 'DOUBLE') 则返回 False。
TO_TIMESTAMP(string, simple_format) 以 Java 的 SimpleDateFormat 支持的时间格式化模板 simple_format,将 string 字符串格式化为 Timestamp 类型的时间戳。默认以东八区为准。 例如 TO_TIMESTAMP(ts, 'yyyy-MM-dd HH:mm:ss')。
DATE_FORMAT_SIMPLE(timestamp, simple_format) 将 BIGINT(Long)类型的字段(毫秒为单位的 Unix 时间戳)以 Java 的 SimpleDateFormat 支持的时间格式化模板转为字符串形式。例如 DATE_FORMAT_SIMPLE(unix_ts, 'yyyy-MM-dd HH:mm:ss') 会返回 "2020-01-01 12:13:14" 这样格式的字符串。
DATE_FORMAT(timestamp, format) 将 Timestamp 类型的字段以 Java 的 SimpleDateFormat 支持的时间格式化模板转为字符串形式。例如 DATE_FORMAT(ts, 'yyyy-MM-dd HH:mm:ss') 会返回 "2020-01-01 12:13:14"。
TIMESTAMP_TO_LONG(timestamp) 或 TIMESTAMP_TO_LONG(timestamp, mode) 将某个 TIMESTAMP 类型的参数转为 BIGINT (Long) 类型的值。若 mode 为 'SECOND',则转为以秒来计数的 Unix 时间戳,例如1548403425。若 mode 为其他值或者省略,则转为以毫秒计数的 Unix 时间戳,例如1548403425512。

二、CAST

测试数据(INT var1) 测试结果 VARCHAR
58 '58'

三、CAN_CAST_TO

功能描述:判断 str 字符串是否可以被转换为 type 指定的类型,返回值为布尔型。返回值可以在 CASE 语句中作为条件使用。
语法:CAN_CAST_TO(str, type)
示例测试语句:SELECT CAN_CAST_TO(var1,type) FROM Test;
测试数据和结果:True

测试数据(VARCHAR var1) 测试数据(VARCHAR type) 测试结果(BOOLEAN)
123456 INTEGER true

四、DATE_FORMAT_SIMPLE

功能描述:将 BIGINT(Long)类型的字段(必须是以毫秒为单位的 Unix 时间戳)以 Java 的 SimpleDateFormat 支持的时间格式化模板转为字符串形式(输出时区为:GMT+8)。
语法:DATE_FORMAT_SIMPLE(timestamp, simple_format)
示例测试语句:SELECT DATE_FORMAT_SIMPLE(unix_ts,'yyyy-MM-dd HH:mm:ss') FROM Test;
测试数据和结果:

测试数据(unix_ts) 测试结果 VARCHAR
1627997937000 2021-08-03 21:38:57

五、DATE_FORMAT

功能描述:将 Timestamp 类型的字段以 Java 的 SimpleDateFormat 支持的时间格式化模板转为字符串形式。
语法:DATE_FORMAT(timestamp, format)
示例测试语句:SELECT DATE_FORMAT(timestamp,format) FROM Test;
测试数据和结果:

测试数据(timestamp) 测试数据(format) 测试结果 VARCHAR
2021-01-01 12:13:14 yyMMdd 210101
2021-01-01 12:13:14 yyyyMMdd 20210101
赞 (0)
上一篇 4天前
下一篇 4天前