안녕하세요. 허접한 실력이라 민망하지만 댓글을 남깁니다. 두 날짜로 해봤을때 잘되는데 원하시는 내용이었으면 좋겠네요 WITH T_DATA AS ( SELECT '20171109' A, TO_DATE('20171109', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171110' A, TO_DATE('20171110', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171115' A, TO_DATE('20171115', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171204' A, TO_DATE('20171204', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171205' A, TO_DATE('20171205', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171206' A, TO_DATE('20171206', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171210' A, TO_DATE('20171210', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171215' A, TO_DATE('20171215', 'YYYYMMDD') B FROM DUAL ) SELECT * FROM T_DATA WHERE ( ( 9 < TO_NUMBER(TO_CHAR(TO_DATE('20171130', 'YYYYMMDD'),'dd')) AND B >= TRUNC(TO_DATE('20171130', 'YYYYMMDD'), 'mm') + 9 AND B < TRUNC(ADD_MONTHS(TO_DATE('20171130', 'YYYYMMDD'), 1), 'mm') + 9 ) OR ( 9 >= TO_NUMBER(TO_CHAR(TO_DATE('20171130', 'YYYYMMDD'),'dd')) AND B >= TRUNC(ADD_MONTHS(TO_DATE('20171130', 'YYYYMMDD'), -1), 'mm') + 9 AND B < TRUNC(TO_DATE('20171130', 'YYYYMMDD'), 'mm') + 9 ) )
WITH T_DATA AS ( SELECT '20171109' A, TO_DATE('20171109', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171110' A, TO_DATE('20171110', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171115' A, TO_DATE('20171115', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171204' A, TO_DATE('20171204', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171205' A, TO_DATE('20171205', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171206' A, TO_DATE('20171206', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171210' A, TO_DATE('20171210', 'YYYYMMDD') B FROM DUAL UNION ALL SELECT '20171215' A, TO_DATE('20171215', 'YYYYMMDD') B FROM DUAL ) SELECT * FROM T_DATA WHERE ( ( 9 < TO_NUMBER(TO_CHAR(TO_DATE('20171215', 'YYYYMMDD'),'dd')) AND B >= TRUNC(TO_DATE('20171215', 'YYYYMMDD'), 'mm') + 9 AND B < TRUNC(ADD_MONTHS(TO_DATE('20171215', 'YYYYMMDD'), 1), 'mm') + 9 ) OR ( 9 >= TO_NUMBER(TO_CHAR(TO_DATE('20171215', 'YYYYMMDD'),'dd')) AND B >= TRUNC(ADD_MONTHS(TO_DATE('20171215', 'YYYYMMDD'), -1), 'mm') + 9 AND B < TRUNC(TO_DATE('20171215', 'YYYYMMDD'), 'mm') + 9 ) )