如何在Snowflake中将2007-10-01T01:02:03.004转换为datetime类型
在Snowflake中转换带T的时间值为Datetime类型
直接转换(推荐)
你的输入字符串2007-10-01T01:02:03.004是标准ISO 8601格式,Snowflake的TO_DATETIME或TO_TIMESTAMP函数可以直接识别,无需指定自定义格式符:
SELECT TO_DATETIME('2007-10-01T01:02:03.004') AS converted_datetime;
按指定格式解析输入
如果需要明确指定解析格式,要匹配输入字符串里的T分隔符和毫秒部分,格式符应为yyyy-mm-dd"T"hh24:mi:ss.fff:
SELECT TO_DATETIME('2007-10-01T01:02:03.004', 'yyyy-mm-dd"T"hh24:mi:ss.fff') AS converted_datetime;
输出指定格式的字符串
如果要将转换后的datetime类型值输出为你给出的2022-11-03 09:13:48.000格式(带空格分隔和三位毫秒),可以用TO_VARCHAR配合对应格式符:
SELECT TO_VARCHAR(TO_DATETIME('2007-10-01T01:02:03.004'), 'yyyy-mm-dd hh24:mi:ss.fff') AS formatted_datetime;
注意点
你之前使用的yyyymmddhh24miss格式符适用于无分隔符的紧凑日期时间字符串(如20071001010203),和你的输入格式不匹配,所以无法正确解析。
内容的提问来源于stack exchange,提问作者Md Shahnawaz Alam
相关产品推荐
相关产品推荐

