본문 바로가기

Dev/Orvercome 3sec memory

MySQL의 BETWEEN 조건절 결과 데이터 범위

728x90

#1. 쿼리 작성할 때마다 헷갈리는 내용


"BETWEEN  조건A AND 조건 B"에서 조회되는 데이터의 범위는?

1) 조건A & 조건B 모두 포함

2) 조건A 포함 & 조건B 비포함

3) 조건A 비포함 & 조건B 포함

4) 조건A & 조건B 모두 비포함



#2. 테스트 결과

1) 조건A & 조건B 모두 포함



e.g) 2일전(2013년 03월 05일)  ~ 오늘 (2013년 03월 07일) 데이터 조회

[Query]

SELECT --- ,로 구분지어지는 조회할 컬럼 ---

FROM --- 조회할 테이블 ---

WHERE 

DATE_FORMAT(--- Data Type이 날짜형식인 컬럼명 ---, '%Y%m%d') 

BETWEEN 

DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -2 DAY), '%Y%m%d') 

AND 

DATE_FORMAT(NOW(), '%Y%m%d')


==> WHERE --- Data Type이 날짜형식인 컬럼명 --- BETWEEN '20130305' AND '20130307'


#3. 결과


[그림 1] 예제 조건 데이터 조회 결과 샘플




2013년 04월 29일 현재.

문득, 날짜를 형변환 해서 혹시 스트링처럼 인식 되어서 그러는 건 아닐까 하는 의구심이 든다.

날짜 값 자체를 Between 해도 저렇게 양쪽 모두를 포함한 결과가 나올까?