0
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 TO_DATE('28-06' || (EXTRACT(YEAR FROM SYSDATE)+1),'dd-mm-yyyy') AS reply_date FROM DUAL;  

返回,28-JUN-19

REPLY_DATE 和 ADD_YEAR 列分别是表中保存值的28-061

4

1 回答 1

2

试试这个

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

EXTRACT(YEAR FROM SYSDATE)不需要,因为当您未指定任何年份时,TO_DATEOracle 将采用当前年份。

您如何确保始终必须申请当年?- 考虑新年前夜的时间。

于 2018-06-28T10:14:49.557 回答