我有SQL,我在本地数据库上运行它。在WHERE子句中,我将其范围缩小到年
WHERE YEAR(SRCSYS_ADD_DATE_TIME)=2020 我得到了结果
在Snowflake工作表中,我使用
WHERE EXTRACT(YEAR FROM TO_DATE(SRCSYS_ADD_DATE_TIME))=2020我得到了这样的信息
Date '2020-05-28-20.42.09.724117' is not recognized'
请帮帮忙。
发布于 2020-06-04 21:30:10
Snowflake的automatic date-time parsing无法识别句点分隔的时间戳格式。
在转换过程中,您需要显式地执行specify a format to read the string:
EXTRACT(
YEAR FROM
TO_DATE('2020-05-28-20.42.09.724117', 'YYYY-MM-DD-HH24.MI.SS.FF')
) = 2020发布于 2020-06-04 21:41:09
bkan。
问题出在时间戳格式上。如果不指定时间戳格式,Snowflake将尝试自动检测。在这种情况下,它不能,所以您必须指定时间戳格式:
select year(to_timestamp('2020-05-28-20.42.09.724117', 'YYYY-MM-DD-HH24.MI.SS.FF6'));如果您不想指定时间戳格式,您的最佳选择是使用YYYY-MM-DD HH24:MM:SS.FFFFF (或其他一些精度为小数秒的格式),如下所示:
select year('2020-05-28 20:42:09.724117'::timestamp);第二个选项将时间戳重新格式化为标准格式,而::timestamp语法将其转换为时间戳。
https://stackoverflow.com/questions/62195509
复制相似问题