今天想根据输入的带季度值的分区名, 再转换成季度的日期, 如下所示:

SELECT ...
FROM ...
WHERE DATECOL >= TO_DATE('20&&partname.','YYYY"Q"Q')
  AND DATECOL <  ADD_MONTHS(TO_DATE('20&&partname.','YYYY"Q"Q'),3)

    却发现怎么都不行, 报了一个Oracle错误. 正向是可以的.

SQL> SELECT TO_CHAR(SYSDATE,'YYYY-Q') FROM DUAL;

TO_CHA
------
2008-3

    反向就不行了, 报日期的格式串不行.

SQL> SELECT TO_DATE('2008-3','YYYY-Q') FROM DUAL;
SELECT TO_DATE('2008-3','YYYY-Q') FROM DUAL
                        *
ERROR at line 1:
ORA-01820: format code cannot appear in date input format

    其他的象年月日等都是可以的, 为什么季度不行呢?