INFO-FLINK SQL 中的时区转换
更新时间: 2024-03-11 02:43:44
阅读 1168
FLINK SQL 中的时区转换
适用模块
实时计算
具体说明
flink sql 中的时区问题
使用示例
flink sql 中通过如下参数进行时区设置,默认使用UTC 时区
set table.local-time-zone = 'default' 默认值为defalut
该参数设置会影响当前整个会话时区,例如per-job 模式下,影响当前集群的整个时区。当使用带时区的数据类型,如 TIMESTAMP WITH LOCAL TIME ZONE
或带时区的函数 unix_timestamp
等在做输出转换时均会使用当前时区进转换,当然,在flink 内部,任然使用UTC 时区。该参数设置时输入可以是地区全名,例如“America/Los_Angeles”,也可以是自定义时区 ID(时区偏移量),例如“GMT-08:00
举例
设置印度时区
set table.local-time-zone='GMT+05:30';
将utc 格式时间转换为timestamp 时间戳
UTC 时间格式数据样例:2022-10-24T10:45:23Z
select unix_timestamp(replace(replace(ts,'T',' '),'Z',''),'yyyy-MM-dd HH:mm:ss') from test_temp;
to_timestamp 转换不带时区,则转换完毕后依然是数据时间
select to_timestamp(replace(replace(ts,'T',' '),'Z',''),'yyyy-MM-dd HH:mm:ss') from test_temp;
作者 清风徐来
文档反馈
以上内容对您是否有帮助?