如何解决从雪花存储过程收到的此错误
错误:第xx行位置xx处类型为"STATEMENT_Error"的未捕获异常:无法将"0000-00-00 00:00:00"解析为格式为"AUTO"的时间戳。
我尝试在SELECT中使用以下语句进行转换
1:TO_TIMESTAMP('01-25-2019 23:25:1120','MM-DD-YYYY HH24:MI:SS.FF'(;
2:TO_DATE(左(时间戳,10(,'YYYY-MM-DD'(
这里什么都不管用。我知道这里的DateTime是"0000-00-00 00:00:00",所以如果有任何可能的解决方法的话。
TIA-
Snowflake无法识别该值的时间戳。
因此,一个格式如下的值:
select '2022-01-01 00:00:00'::timestamp;
工作良好,而您的价值:
select '0000-00-00 00:00:00'::timestamp;
投掷:
Timestamp '0000-00-00 00:00:00' is not recognized
对于DATE和TIMESTAMP数据,Snowflake建议使用1582到9999之间的年份。Snowflake接受这个范围之外的年份,但由于公历的限制,应该避免1582年之前的年份。
有关更多信息,请查看此处。
正如Sergiu已经提到的,Snowflake建议使用1582年至9999年之间的年份。
更重要的是,0年的第一秒应该是0000-01-01 00:00:00。因此"0000-00-00 00:00:00"不是有效的日期/时间。
select dateadd( 'seconds', -1, TO_TIMESTAMP('0000-01-01 00:00:00' ));
-0001-12-31 23:59:59.000
为了防止在这个";"无效时间戳";,可以使用TRY_TO_TIMESTAMP函数:
select TRY_TO_TIMESTAMP('0000-01-01 00:00:00'); -- returns NULL
https://docs.snowflake.com/en/sql-reference/functions-conversion.html#error-处理转换功能