提示:以下是本篇文章正文内容,下面案例可供参考

一、对某个flink sql job指定时区处理时间戳

示例:

SET 'table.local-time-zone'='Asia/Shanghai';

二、为什么要指定时区

当使用带时区的数据类型(数值型时间戳是没有时区概念的。如这个时间戳:1646580236),如 TIMESTAMP WITH LOCAL TIME ZONE或带时区的函数 unix_timestamp 等在做输出转换时均会使用当前时区进转换

三、操作对比

1).使用东8区转换时间戳

SET 'table.local-time-zone'='Asia/Shanghai';
SELECT from_unixtime(1646580236,'yyyyMMdd')

2).使用东9区转换时间戳

SET 'table.local-time-zone'='Asia/Tokyo';
SELECT from_unixtime(1646580236,'yyyyMMdd')

在这里插入图片描述

3).也可以是自定义时区 ID(例如“GMT+08:00”)

SET 'table.local-time-zone'='GMT+08:00';
SELECT from_unixtime(1646580236,'yyyyMMdd')

在这里插入图片描述

参考文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/config/#table-local-time-zone

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐