oracle - 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”,不包括。
我的意思是获得上个月的价值。
有没有人可以帮助我?谢谢
解决方案
您可以使用on conversion error
以下方法清除损坏的数据(oracle 12.2 或更高版本)。
TO_DATE(MK.CREATE_DATE||'-01','YYYY-MM-DD' default null on conversion error)
推荐阅读
- javascript - 从外部 JavaScript 函数调用 react 组件的函数
- docker - 无法将第二个 kafka 实例 dockerize 到 zookeeper
- node.js - Nodejs exec子进程stdout没有得到所有的块
- odoo - Many2one 选择的显示名称
- cmake - 交叉编译和链接到 sysroot 中的库 - 出了什么问题?
- ios - 如何使用 HTML 标签快速显示表格
- r - R编程中函数中的ifelse未使用参数(3)错误
- powershell - 奇怪的 CSV 输出
- python - 如何在弹性搜索查询中聚合嵌套对象的 doc_inner-hits
- sql - 多个 OR 条件在 SQL 连接查询中不起作用