在 where 子句中测试时,命中的输入值对于日期格式来说不够长

Hit input value not long enough for date format when test in where clause

TRUNC(SYSDATE) >= TO_DATE(REPLY_DATE || (EXTRACT(YEAR FROM SYSDATE)+ADD_YEAR),'dd-mm-yyyy')

以上脚本是我脚本中的WHERE子句条件之一,添加条件后整个脚本抛出错误ORA-01840: input value not long enough for date format

我尝试在 select 查询中使用实际值执行,它工作正常

SELECT TO_DATE('28-06' || (EXTRACT(YEAR FROM SYSDATE)+1),'dd-mm-yyyy') AS reply_date FROM DUAL;  

return,2019 年 6 月 28 日

列REPLY_DATE和ADD_YEAR分别是table.

中包含值28-061的列

试试这个

TRUNC(SYSDATE) >= ADD_MONTHS(TO_DATE(REPLY_DATE, 'DD-MM'), 12 * ADD_YEAR)

EXTRACT(YEAR FROM SYSDATE) 不是必需的,因为当您没有在 TO_DATE 中指定任何年份时,Oracle 将采用当前年份。

如何确保您总是必须申请当年? - 考虑新年前夕前后的时间。