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;
返回19年6月28日
列REPLY_DATE和ADD_YEAR分别是表中包含值28-06
和1
的列。
答案 0 :(得分:2)
尝试这个
TRUNC(SYSDATE) >= ADD_MONTHS(TO_DATE(REPLY_DATE, 'DD-MM'), 12 * ADD_YEAR)
EXTRACT(YEAR FROM SYSDATE)
是不需要的,因为当您在TO_DATE
中未指定任何年份时,Oracle将采用当前年份。
如何确保始终必须应用本年度? -考虑除夕夜的时间。