在Flink的Table API&SQLk开发的时候,我们我们了解到数据都是做成了table,然后使用sql的形式去对数据进行处理。这里我们回忆一下,使用传统的mysql的时候,我们jdbc里面是不是要传入一个时区?因为不同的应用场景,在不同的地区使用的时区是不一样的,例如中国的应用场景,使用的时区就是:Asia/Shanghai。所以本文我们来介绍下时区案例。
在flink开发中,我们如果使用java代码进行开发,那么设置时区的代码是:
//设置table api&sql的时区 tEnv.getConfig().setLocalTimeZone(ZoneId.of("Asia/Shanghai"));
完整的代码示例如下图:
如果是在flink-sql的客户端的话,设置时区的代码是:
SET 'table.local-time-zone' = 'Asia/Shanghai';
具体的设置如下图:
关于时区的设置,这里的时区仅影响到的时间数据类型有:
1、DATE 2、TIME 3、TIMESTAMP_LTZ
切记这里对timestamp不起作用。
对这里的时区能影响到的对应的查询变量有:
1、LOCALTIME 2、LOCALTIMESTAMP 3、CURRENT_DATE 4、CURRENT_TIME 5、CURRENT_TIMESTAMP 6、CURRENT_ROW_TIMESTAMP() 7、NOW() 8、PROCTIME()
以上就是flink table api&sql 中对于时区的设置,最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...