시작일자-종료일자 일수를 구하는 sql(단, 토/일요일 제외)
SELECT COUNT(*) CNT FROM ( SELECT TO_DATE(:END_DT) - LEVEL DT FROM DUAL CONNECT BY LEVEL <= TO_DATE(:END_DT) - TO_DATE(:ST_DT) ) A WHERE TO_CHAR(A.DT, 'D') NOT IN ('1', '7')
1. 시작일 기준
SELECT COUNT(*) CNT FROM ( SELECT TO_DATE(:STR_DT) + LEVEL - 1 DT , TO_CHAR(TO_DATE(:STR_DT) + LEVEL - 1, 'D') DNM FROM DUAL CONNECT BY LEVEL <= TO_DATE(:END_DT) - TO_DATE(:STR_DT) + 1 ) A WHERE DNM NOT IN ('1', '7')
2. 종료일기준 SELECT COUNT(*) CNT FROM ( SELECT TO_DATE(:END_DT) - LEVEL + 1 DT , TO_CHAR(TO_DATE(:END_DT) - LEVEL + 1, 'D') DNM FROM DUAL CONNECT BY LEVEL <= TO_DATE(:END_DT) - TO_DATE(:STR_DT) + 1 ) A WHERE DNM NOT IN ('1', '7')
구간을 구해야 하기 때문에 반드시 종료일 - 시작일 + 1 의 형태가 되어야 합니다.