시작일과 종요일을 가지고 있는 레코드를 시작일과 종료일로 검색해서 가져오기

munilive
Written by munilive on (Updated: )

그누보드로 커스텀 한 사이트를 만들다 보면 간혹 게시글에 시작일/종료일과 같은 데이터를 추가로 입력해야 하는 경우가 있다.
그리고, 해당 시작일과 종료일을 가지고 검색을 할 때 시작일과 종료일을 포함하고 있는 모든 레코드를 가져오도록 해야 하는 경우가 있다.

아래와 같은 조건을 만족하는 쿼리이다.

idct_sdatect_edate
12012-01-012012-02-16
22012-02-012012-08-31
  • 조건 1
    • 검색조건: sDate = 2020-01-01, eDate = 2012-01-30
    • 결과: 1 번만 조회
  • 조건 2
    • 검색조건: sDate = 2011-12-01, eDate = 2011-12-30
    • 결과: 조회 결과 없음
  • 조건 3
    • 검색조건: sDate = 2012-02-01, eDate = 2012-02-28
    • 결과: 1, 2번 모두 조회
  • 조건 4
    • 검색조건: sDate = 2012-03-01, eDate = 2012-04-01
    • 결과: 2번만 조회
  • 조건 5
    • 검색조건: sDate = 2012-09-01, eDate = 2012-09-30
    • 결과: 조회 결과 없음
(('$sDate' <= ct_sdate AND '{$eDate}' >= ct_sdate) OR ('{$sDate}' <= ct_edate AND '{$eDate}' >= ct_edate) OR (ct_sdate <= '{$eDate}' AND ct_edate >= '{$eDate}'))

# BETWEEN 사용
ct_sdate BETWEEN '{$sDate}' AND '{$eDate}' OR ct_edate BETWEEN '{$sDate}' AND '{$eDate}' OR (ct_sdate <= '{$sDate}' AND ct_edate >= '{$eDate}')

Comments

comments powered by Disqus