Flink SQL中如何将Timestamp转换为带毫秒的hh:mm:sss格式?
在Flink SQL中将Timestamp转换为带毫秒的时间格式
在Flink SQL里,使用DATE_FORMAT()函数即可实现Timestamp类型到带毫秒的hh:mm:ss.SSS格式的转换,核心是指定正确的格式模板。
基础用法
格式模板中,hh对应12小时制小时,mm代表分钟,ss代表秒,SSS代表三位毫秒数。基础语法如下:
DATE_FORMAT(你的Timestamp字段, 'hh:mm:ss.SSS')
如果需要24小时制的时间,只需把hh替换为HH:
DATE_FORMAT(你的Timestamp字段, 'HH:mm:ss.SSS')
实际示例
假设存在表event_log,其中event_time是Timestamp类型字段,执行以下查询即可获取转换后的时间格式:
SELECT event_time, -- 12小时制带毫秒格式 DATE_FORMAT(event_time, 'hh:mm:ss.SSS') AS time_12h, -- 24小时制带毫秒格式 DATE_FORMAT(event_time, 'HH:mm:ss.SSS') AS time_24h FROM event_log;
注意事项
- Flink 1.12及以上版本支持
DATE_FORMAT()函数,低版本需采用其他方式实现 - 格式占位符区分大小写:
HH(24小时制)与hh(12小时制)不可混用,SSS必须大写才能正确解析毫秒
内容的提问来源于stack exchange,提问作者şentürk şimşek
相关产品推荐
相关产品推荐

