1、什么时候会报这种错
比如,想求 去年首月 (YYYYMM格式),如下SQL,输入参数:20181228
此时会报错:ORA-01830: 日期格式图片在转换整个输入字符串之前结束
是因为输入的参数比实际 to_date 接收的参数长,改为:201812,则可正常查询。
select to_char(add_months(trunc(to_date(&1,'YYYYMM'),'yy'),-12),'YYYYMM') from dual;
2、另外一个类似的错误 ORA-01840:输入值对于日期格式不够长
输入参数:201812时会报错,应当输入:20181228
select to_char(add_months(trunc(to_date(&1,'YYYYMMDD'),'yy'),-12),'YYYYMM') from dual;