实时计算Flink版在社区Flink SQL数据类型基础上,新增隐式类型转换的支持。本文为您介绍类型转换支持矩阵。
注意事项
实时计算Flink版在显式类型转换上默认处理策略有区别,默认启用Legacy-Cast行为,即等效于将作业参数
table.exec.legacy-cast-behaviour
设置为enabled
。对于空值null的使用,建议使用显式类型转换的写法,即
cast(null as target_type)
,如cast(null as varchar)
,避免出现非预期的转换结果,如“NULL”字符串或转换异常。
类型转换支持矩阵
输入类型\目标类型 | null | boolean | tinyint | smallint | int | bigint | decimal | float | double | interval | date | time | timestamp | [var]char | [var]binary | variant |
null | I | I | I | I | I | I | I | I | I | I | I | I | I | I | I | I |
boolean | - | I | E | E | E | E | E | E | E | - | - | - | - | I | - | E |
tinyint | - | E | I | I | I | I | I | I | I | E | - | - | E | I | - | E |
smallint | - | E | I | I | I | I | I | I | I | E | - | - | E | I | - | E |
int | - | E | I | I | I | I | I | I | I | E | - | - | E | I | - | E |
bigint | - | E | I | I | I | I | I | I | I | E | - | - | E | I | - | E |
decimal | - | E | I | I | I | I | I | I | I | E | - | - | E | I | - | E |
float | - | E | I | I | I | I | I | I | I | - | - | - | E | I | - | E |
double | - | E | I | I | I | I | I | I | I | - | - | - | E | I | - | E |
interval | - | - | E | E | E | E | E | - | - | I | - | - | - | E | - | E |
date | - | - | - | - | - | - | - | - | - | - | I | - | I | I | - | E |
time | - | - | - | - | - | - | - | - | - | - | - | I | E | I | - | E |
timestamp | - | - | E | E | E | E | E | E | E | - | I | E | I | I | - | E |
[var]char | - | E | I | I | I | I | I | I | I | I | I | I | I | I | I | E |
[var]binary | - | - | - | - | - | - | - | - | - | - | E | E | E | I | I | E |
variant | - | E | E | E | E | E | E | E | E | E | E | E | E | E | E | I |
其中符号含义说明如下:
E:只支持显式类型转换。
I:支持隐式类型转换。
-:不支持类型转换。
相关文档
社区支持的SQL数据类型详情请参见社区Flink SQL数据类型。