数据类型转换

实时计算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数据类型