오라클 저장 프로시저 기간검색 질문입니다..... 0 1 1,117

by hanks [Oracle 기초] [2017.01.05 18:39:38]


초보 개발자인데요...

특정기간이 포함된 날짜를 조회하고싶은데...

예를들어 2017-01-09 ~ 2017-01-31일 사이에

어떤 이벤트기간의 날짜가 포함되어 있으면  조회하려고 합니다.

이벤트의 기간이 2017-01-01 ~ 2017-01-09 이거나

2017-01-10 ~ 2017-01-30 이거나

2017-01-30 ~ 2017-02-02 일때처럼 검색기간의 날짜가 포함되어있으면 조회하려고하는데

어떻게 해야할까요...

 

    select comm_cd, comm_nm, seq_no, proc_sts, (from_dt || ' ~ ' || to_dt) as open_dt
    from TB_CONSULTANT_COMMITTEE
    where  UP_CD = pUP_CD
    and  (pfrom_dt is null or from_dt between pFROM_DT and pTO_DT) 
     or (pto_dt is null or to_dt  between pFROM_DT and pTO_DT); 

이런식으로 했지만 잘 되지 않네요...

p가 붙은건 파라메터입니다.
     

 

by 마농 [2017.01.06 09:13:44]
-- 시작일과 종료일을 서로 교차비교하면 됩니다.
SELECT *
  FROM tb_consultant_committee
 WHERE up_cd = pup_cd
   AND from_dt <= NVL(  pto_dt, '9999-12-31')
   AND   to_dt >= NVL(pfrom_dt, '1000-01-01')
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입