where절 날짜조건을 어떻게 해야할지 모르겟어요 ㅠ 0 2 509

by 노랑별 [SQL Query] [2017.04.26 10:28:57]


select *

from A

WHERE   1=1

AND A.START_DATE >= TO_DATE('17.04.20', 'YY.MM.DD')  
   AND A.START_DATE <= TO_DATE('17.04.25', 'YY.MM.DD')    
   AND  A.END_DATE >= TO_DATE('17.04.20', 'YY.MM.DD')  
   AND  A.END_DATE <= TO_DATE('17.04.25', 'YY.MM.DD')   

 

저부분에서 제가 선택한 날짜사이에 START_DATE나 END_DATE 가 하나라도 포함이 되면 출력되게 하고싶은데 WHERE절에서 AND와 OR을 어떻게 넣어야하는지 잘 모르겠어요

예를들면 START_DATE는 2017.04.22이고 END_DATE는 2017.04.31이면 04.20일과 04.25일 사이에 START_DATE가 있으니까 이 데이터를  출력되게 쿼리를 짜고싶습니다

 

by ㅇㅇ준 [2017.04.26 11:02:16]

AND (A.START_DATE >= TO_DATE('17.04.20', 'YY.MM.DD')  
   AND A.START_DATE <= TO_DATE('17.04.25', 'YY.MM.DD'))
   OR (  A.END_DATE >= TO_DATE('17.04.20', 'YY.MM.DD')  
   AND  A.END_DATE <= TO_DATE('17.04.25', 'YY.MM.DD'))   


by 마농 [2017.04.26 11:24:13]

시작일과 종료일을 교차해서 비교하시면 됩니다.
 

SELECT *
  FROM a
 WHERE 1=1
   AND a.start_date <= TO_DATE('2017.04.25', 'yyyy.mm.dd')
   AND a.end_date   >= TO_DATE('2017.04.20', 'yyyy.mm.dd')
;

 

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