봉봉의 개인 블로그

MSSQL between을 이용한 날짜 검색 본문

관련 지식

MSSQL between을 이용한 날짜 검색

봉봉이네 2017. 5. 8. 10:57


MSSQL을 사용하면 ~에서 ~까지 검색을 하기 위해 between 을 많이 사용합니다. 

 

 

between??

 

select * from 테이블 where 컬럼명 between '시작'  and '끝' 

ex)

select * from products where idx between 1  and 100  

(products테이블에서 IDX 값이 1~100까지를 검색하라) 

라는 방식으로 많이 쓰입니다. 

 

 

그리고 많이 사용하는것이 몇일부터 몇일까지 데이터를 추출할때도 많이 사용합니다.

 

select * from 테이블 where 컬럼명 between '시작일'  and '끝일' 

ex)

select * from products where registdate between '2013-03-01' and '2013-03-04'   

(2013년 3월1일부터~2013년 3월 4일까지데이터 추출) 

 

하지만 여기서 문제점은 이 내용은 2013-03-01 00:00:00 부터 2013-03-04 00:00:00까지 입니다.  

그러니까 3일까지 데이터가 추출되는 것입니다 

 

그래서 이 문제점을 해결하기 위해서 아래와 같은 쿼리를 이용합니다.

 

 

select * from products  

where convert(int, convert(char(8), registdate, 112)) between '20130301' and '20130304' 

 

registdate 컬럼의 날짜를 convert 로 변경해서 앞에서 8자리(20130301) 로 변환을 시켜준뒤 between을 이용해서 검색하는 방식입니다.

 

이것도 복잡하면... 

 

select * from products where registdate > '2013-03-01' and registdate < '2013-04-01'

이런식으로 단순한 방법으로 쿼리를 만들어 주면 되겠지요. 판단은 여러분들의 몫입니다. 


Comments