쿼리 1.
SELECT * FROM (
SELECT
TRUNC(TO_DATE(A.REG_DT, 'yyyyMMdd') - TO_DATE(TO_CHAR(SYSDATE, 'yyyyMMdd'), 'yyyyMMdd')) AS DATE_DIFF
FROM
TB_AA A, TB_BB B
WHERE
A.SEQ = B.SEQ
);
쿼리 2.
SELECT * FROM (
SELECT
TRUNC(TO_DATE(A.REG_DT, 'yyyyMMdd') - TO_DATE(TO_CHAR(SYSDATE, 'yyyyMMdd'), 'yyyyMMdd')) AS DATE_DIFF
FROM
TB_AA A, TB_BB B
WHERE
A.SEQ = B.SEQ
) WHERE DATE_DIFF > 0;
쿼리 1의 경우 정상적으로 데이터가 나오는데
2의 경우 ORA-01839: date not valid for month specified 에러가 발생합니다.
실제로 a.reg_dt를 substr로 년, 월, 일을 다 select 해봐도 오라클 날짜에서 벗어나지 않는데
왜 2의 경우 위의 에러가 발생하는지 모르겠습니다.
답변주시는 분들께 미리 감사드립니다.
결론.
데이터를 다 뒤져보니 09-31에 해당하는 REG_DT가 존재하네요. 아...이런;;;
어제까지만 하더래도 정상이었다 오늘 갑자기 에러나는 것을 보니
누군가 업데이트를 잘못한 것 같습니다.
감사합니다. |