功能描述:将某个值转为 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 |