在 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-06
和1
的列
试试这个
TRUNC(SYSDATE) >= ADD_MONTHS(TO_DATE(REPLY_DATE, 'DD-MM'), 12 * ADD_YEAR)
EXTRACT(YEAR FROM SYSDATE)
不是必需的,因为当您没有在 TO_DATE
中指定任何年份时,Oracle 将采用当前年份。
如何确保您总是必须申请当年? - 考虑新年前夕前后的时间。
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-06
和1
的列
试试这个
TRUNC(SYSDATE) >= ADD_MONTHS(TO_DATE(REPLY_DATE, 'DD-MM'), 12 * ADD_YEAR)
EXTRACT(YEAR FROM SYSDATE)
不是必需的,因为当您没有在 TO_DATE
中指定任何年份时,Oracle 将采用当前年份。
如何确保您总是必须申请当年? - 考虑新年前夕前后的时间。