首页 > 解决方案 > 为什么 Oracle SQL 中的 ADD_MONTHS 函数存在问题

问题描述

我正在使用在线 APEX Oracle DB 进行一些培训,但遇到了一个让我摸不着头脑的功能的问题。

我已经进行了一些测试,并且能够让它以长手的方式工作,但不是缩短的语法。使用缩短的语法会返回一个我无法弄清楚的错误。任何帮助,将不胜感激。

我试过的:

select add_months('2015/10/12', 4) from dual 返回错误:

ORA-01846: not a valid day of the week

我必须工作:

select add_months(to_date('2015/10/12', 'yyyy/mm/dd'), 4) from dual

当我使用add_months(to_date())格式时

我得到了正确的结果,Friday, 12 February, 2016

如果我使用add_months(arg1, arg2)它会返回错误。

标签: sqloracle

解决方案


add_months期望date,但您提供的VARCHAR格式没有导致意外错误。

基本上,oracle 不能将给定的格式隐式转换为日期

在此处输入图像描述


推荐阅读