在尝试检索特定月份的记录时,我的WHERE子句出现问题。
WHERE NVL(TO_CHAR(prsl.DEADLINE, 'YYYY-MM-DD'), TO_CHAR(prsl.SUBMIT_DATE, 'YYYY-MM-DD')) >= DATE '2015-11-01'
AND NVL(TO_CHAR(prsl.DEADLINE, 'YYYY-MM-DD'), TO_CHAR(prsl.SUBMIT_DATE, 'YYYY-MM-DD')) < DATE '2015-12-01'
基本上这样做,如果DEADLINE
不为null,请使用它来比较日期范围。如果为null,请使用SUBMIT_DATE
进行比较。
使用上述查询,我收到此错误:
ORA-01861: literal does not match format string
答案 0 :(得分:0)
您可以尝试EXTRACT
:
EXTRACT(MONTH FROM prsl.DEADLINE) = 11
AND EXTRACT(YEAR FROM prsl.DEADLINE) = 2015
答案 1 :(得分:0)
另一种解决方案是:
WHERE TRUNC(COALESCE(prsl.DEADLINE, prsl.SUBMIT_DATE), 'MM') = DATE '2015-11-01'