Snowflake中如何将指定格式字符串转换为日期或时间戳?
Snowflake中转换
Sat Dec 31 07:56:31 UTC 2020格式的日期字符串 一、直接转换为Timestamp类型
不用手动用substr提取字段,Snowflake的TO_TIMESTAMP_TZ(带时区)或TO_TIMESTAMP函数支持通过指定格式模型直接解析该字符串:
-- 转换为带时区的Timestamp类型(保留UTC时区信息) SELECT TO_TIMESTAMP_TZ('Sat Dec 31 07:56:31 UTC 2020', 'Dy Mon DD HH24:MI:SS TZ YYYY') AS converted_timestamp; -- 若无需时区信息,可使用TO_TIMESTAMP SELECT TO_TIMESTAMP('Sat Dec 31 07:56:31 UTC 2020', 'Dy Mon DD HH24:MI:SS TZ YYYY') AS converted_timestamp;
格式模型对应说明:
Dy:星期缩写(如Sat)Mon:月份缩写(如Dec)DD:两位日期HH24:MI:SS:24小时制时分秒TZ:时区缩写(如UTC)YYYY:四位年份
二、转换为dd-mmm-yyyy格式日期
可以先解析为日期/时间戳类型,再用TO_CHAR格式化,也可直接解析为日期后处理:
-- 方法1:先转带时区Timestamp再格式化 SELECT TO_CHAR(TO_TIMESTAMP_TZ('Sat Dec 31 07:56:31 UTC 2020', 'Dy Mon DD HH24:MI:SS TZ YYYY'), 'DD-Mon-YYYY') AS formatted_date; -- 方法2:直接解析为日期类型后格式化 SELECT TO_CHAR(TO_DATE('Sat Dec 31 07:56:31 UTC 2020', 'Dy Mon DD HH24:MI:SS TZ YYYY'), 'DD-Mon-YYYY') AS formatted_date;
内容的提问来源于stack exchange,提问作者Swarup Narkhede
相关产品推荐
相关产品推荐

