Flink SQL 时区 -- 时间字符串转时间戳并转换时区

文章目录

一、数据需求:

将时间字符串格式化,转变成时间戳,再加8小时后写入clickhouse

bash 复制代码
2023-10-17T03:00:42.506205807 ---->  2023-10-17 11:00:42.506

二、探索路程

1、UNIX_TIMESTAMP + CONVERT_TZ

(该方法默认精确度为秒,不适用毫秒)

(1)UNIX_TIMESTAMP

作用:将时间字符串转换成时间戳

用法:UNIX_TIMESTAMP(STRING datestr, STRING format)

sql 复制代码
eg:
	UNIX_TIMESTAMP('1970-01-01 08:00:01', 'yyyy-MM-dd HH:mm:ss.SSS')

(2)CONVERT_TZ

作用:转换时区

用法:CONVERT_TZ(string1, string2, string3)

sql 复制代码
eg:
	CONVERT_TZ('1970-01-01 08:00:01', 'UTC', 'Asia/Shanghai')

2、UNIX_TIMESTAMP

(实测仅获取当前10位时间戳)

作用:将时间字符串转换成时间戳,并转换时区

用法:UNIX_TIMESTAMP('1970-01-01 08:00:01.001 +0800', 'yyyy-MM-dd HH:mm:ss.SSS X');

三、解决方案

sql 复制代码
TIMESTAMPADD(HOUR, 8, TO_TIMESTAMP(replace(substring('2023-10-17T03:00:42.506205807',0,23),'T',' ')));

TIMESTAMPADD + TO_TIMESTAMP

(1)TIMESTAMPADD

作用:给时间戳加上任意时间

用法:TIMESTAMPADD(timeintervalunit, interval, timepoint)

sql 复制代码
eg:
	TIMESTAMPADD(HOUR, 8, 1696932862000)

(2)TO_TIMESTAMP

作用:将时间字符串转换成时间戳

用法:TO_TIMESTAMP(string1[, string2])

sql 复制代码
eg:
	TO_TIMESTAMP('1970-01-01 08:00:01.001')
相关推荐
mask哥17 小时前
详解mcp以及agen架构设计与实现
java·微服务·flink·大模型·ai agent·springai·mcp
emma羊羊21 小时前
【SQL注入】延时盲注
数据库·sql·网络安全
程序员小羊!1 天前
大数据电商流量分析项目实战:Spark SQL 基础(四)
大数据·sql·spark
好名字更能让你们记住我1 天前
MYSQL数据库初阶 之 MYSQL用户管理
linux·数据库·sql·mysql·adb·数据库开发·数据库架构
亭台烟雨中1 天前
SQL优化简单思路
数据库·sql
在路上`1 天前
前端学习之后端java小白(二)-sql约束/建表
java·sql·学习
F_D_Z2 天前
【SQL】指定日期的产品价格
数据库·sql·mysql
麦聪聊数据2 天前
如何使用 QuickAPI 快速连接 MySQL 数据库并发布 RESTful API
数据库·sql·mysql·restful·数据服务
潘达斯奈基~2 天前
Google AI Studio使用1:创建Flink测试题APP
大数据·flink·aigc
数巨小码人2 天前
Oracle SQL调优技巧实战指南
数据库·sql·oracle