一、數(shù)據(jù)需求:
將時(shí)間字符串格式化,轉(zhuǎn)變成時(shí)間戳,再加8小時(shí)后寫(xiě)入clickhouse
2023-10-17T03:00:42.506205807 ----> 2023-10-17 11:00:42.506
二、探索路程
1、UNIX_TIMESTAMP + CONVERT_TZ
(該方法默認(rèn)精確度為秒,不適用毫秒)
(1)UNIX_TIMESTAMP
作用:將時(shí)間字符串轉(zhuǎn)換成時(shí)間戳
用法:UNIX_TIMESTAMP(STRING datestr, STRING format)
eg:
UNIX_TIMESTAMP('1970-01-01 08:00:01', 'yyyy-MM-dd HH:mm:ss.SSS')
(2)CONVERT_TZ
作用:轉(zhuǎn)換時(shí)區(qū)
用法:CONVERT_TZ(string1, string2, string3)
eg:
CONVERT_TZ('1970-01-01 08:00:01', 'UTC', 'Asia/Shanghai')
2、UNIX_TIMESTAMP
(實(shí)測(cè)僅獲取當(dāng)前10位時(shí)間戳)
作用:將時(shí)間字符串轉(zhuǎn)換成時(shí)間戳,并轉(zhuǎn)換時(shí)區(qū)
用法:UNIX_TIMESTAMP(‘1970-01-01 08:00:01.001 +0800’, ‘yyyy-MM-dd HH:mm:ss.SSS X’);
三、解決方案
TIMESTAMPADD(HOUR, 8, TO_TIMESTAMP(replace(substring('2023-10-17T03:00:42.506205807',0,23),'T',' ')));
TIMESTAMPADD + TO_TIMESTAMP
(1)TIMESTAMPADD
作用:給時(shí)間戳加上任意時(shí)間
用法:TIMESTAMPADD(timeintervalunit, interval, timepoint)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-765699.html
eg:
TIMESTAMPADD(HOUR, 8, 1696932862000)
(2)TO_TIMESTAMP
作用:將時(shí)間字符串轉(zhuǎn)換成時(shí)間戳
用法:TO_TIMESTAMP(string1[, string2])文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-765699.html
eg:
TO_TIMESTAMP('1970-01-01 08:00:01.001')
到了這里,關(guān)于Flink SQL 時(shí)區(qū) -- 時(shí)間字符串轉(zhuǎn)時(shí)間戳并轉(zhuǎn)換時(shí)區(qū)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!