如何在Snowflake中将Thu Sep 02 16:29:11 UTC 2021转换为timestamp类型
Snowflake varchar字符串转timestamp解决方案
你提到的Thu Sep 02 16:29:11 UTC 2021格式的varchar字符串,可以直接用Snowflake内置的TO_TIMESTAMP函数配合对应格式掩码完成转换,不需要额外做字符串截取处理。
基础用法
针对你给出的样例格式,直接使用如下语句即可:
-- 单值测试 SELECT TO_TIMESTAMP('Thu Sep 02 16:29:11 UTC 2021', 'DY MON DD HH24:MI:SS TZHTZM YYYY', 'en') AS converted_timestamp; -- 表字段批量转换 SELECT 待转换字段名, TO_TIMESTAMP(待转换字段名, 'DY MON DD HH24:MI:SS TZHTZM YYYY', 'en') AS 转换后timestamp字段 FROM 表名;
格式参数说明
上面用到的格式掩码和输入的字符串结构一一对应,可根据自己的实际字符串格式调整:
DY:匹配英文星期缩写(对应样例中的Thu)MON:匹配英文月份缩写(对应样例中的Sep)DD:匹配两位日期数值(对应样例中的02)HH24:MI:SS:匹配24小时制的时分秒格式(对应样例中的16:29:11)TZHTZM:匹配时区标识(对应样例中的UTC)YYYY:匹配四位年份(对应样例中的2021)- 末尾第三个参数
'en'是指定解析语言为英文,避免部分实例默认语言非英文时无法识别英文的星期、月份缩写,兼容性更强。
输出效果
执行转换后你将得到标准timestamp类型的结果:2021-09-02 16:29:11.000 +0000
内容的提问来源于stack exchange,提问作者Wenyi Yan
相关产品推荐
相关产品推荐

