sql - QUERY 中的 TO_DATE 年份为空
问题描述
我想在一个查询中执行此操作,在该查询中检查我的创建日期是否大于另一个,但表列按年、月和日划分,有时年中有非法值。
Select count{*) from coverage cv
WHERE EXIST (Select * from addressTable ad
and cv.date > to_date(ad.year||ad.month||ad.day, 'YYYYMMDD')
当我运行它时,我得到错误 ORA-01841: Full year must be between -4713 and +9999 and not be 0.
我可以在查询中写一些东西来忽略非法值并只计算合法值吗?
解决方案
我可以在查询中写一些东西来忽略非法值而只计算合法值吗?
如果您运行的是 Oracle 12.2 或更高版本,则可以使用on conversion error
:
to_date(ad.year || ad.month || ad.day default null on conversion error, 'yyyymmdd')
推荐阅读
- c# - Web API(Rest)在本地主机中工作但不在服务器中
- javascript - 使用 setInterval() 创建计时器的问题:更新太快
- python - 如何在另一个图像中找到不同大小的图像(OpenCV Python)
- python - 如何在 pandas 中使用 series.map() 或 series.apply() 将函数正确应用于系列
- graph - NetworkX 库能否读取 Ntriple 格式的 RDF 数据并构建 Graph 对象以及属性或节点特征
- rxjs - 无法使用 ngrx 对 observable 进行管道传输
- flutter - 如何检测手机是否在颤振中连接到电源
- javascript - 从输入中传递 localStorage 数据
- java - ByteBuddy:转换方法时如何在进入/退出时添加局部变量
- go - 如何使用具有两个不同名称(短和长)的标志