기간검색에 대한 공휴일 제거에 대해서요. 0 2 5,941

by 산들바람 기간 [2010.01.29 11:02:48]


안녕하세요.
저번에 기간검색에 대해 여쭈어 보았었는데요. 마농님의 답변 감사드립니다.
저번에 여쭈어 봤던 것에서 추가적으로 여쭈어 볼게 있어서 글을씁니다.

 select * from (select yyyymmdd, hhmmss, TRAP_FROM from CM_TRAP
 where yyyymmdd||hhmmss BETWEEN '20091001000010'AND '20100110000000'
  AND TO_CHAR(TO_DATE(yyyymmdd,'yyyymmdd'),'d') NOT IN ('1','7'))
   where hhmmss BETWEEN '090000'AND '180000‘
    order by yyyymmdd||hhmmss desc

이상태의 쿼리는 '20091001000010 에서  '20100110000000' 날짜 사이의 값들에서
주말을 제외하고 9~18시 사이의 것만 출력이 되는데요.
즉 평일의 9~18시 것만 나오고 있습니다.
이러한 상태의 부분에서 평일에 공휴일이 있을경우 그 부분들은 어떠한 식으로 쿼리를 추가해야
공휴일도 제거가 될가요? 만약 그냥 안된다면 일일이 공휴일을 지정해서 그 날짜만 빠지게 매년 구성해야하나요?

by 현 [2010.01.29 11:08:32]
TO_CHAR(TO_DATE(yyyymmdd,'yyyymmdd'),'d') NOT IN ('1','7'))
이 조건이 토요일과 일요일을 빼는 조건입니다.
평일에 공휴일이 있는 것은 별도의 테이블로 관리하셔야 합니다.
sql로 뺄 수는 없는 것이지요..
이유는 해마다 날짜가 달라지기 때문이기도 하구요..

일반적으로 날짜 테이블을 만들거나, 공휴일 테이블을 만들어서 관리를 합니다.

by 산들산들 [2010.01.29 16:36:17]
그렇군요. 날짜 테이블을 만들어서 공휴일을 관리해야겠군요. 답변감사드립니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입