首页 > 解决方案 > ORA-01841 错误:年份必须介于 -4713 和 +9999 之间,而不是 0

问题描述

我有一个 plsql 块,我收到“ORA-01841: (full) year must be between -4713 and +9999, and not be 0”错误。我的 where 子句就像;

WHERE TO_DATE(MK.CREATE_DATE||'-01','YYYY-MM-DD') BETWEEN trunc(add_months(trunc(sysdate),-1),'MM') and trunc(sysdate,'MM')-1 

并且mk.create_date format是“2020-01”,“2020-02”,不包括。

我的意思是获得上个月的价值。

有没有人可以帮助我?谢谢

标签: oracledateplsql

解决方案


您可以使用on conversion error以下方法清除损坏的数据(oracle 12.2 或更高版本)。

TO_DATE(MK.CREATE_DATE||'-01','YYYY-MM-DD' default null on conversion error)

推荐阅读