관리 메뉴

드럼치는 프로그래머

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

★─Programing/☆─DBMS

[DBMS] MSSQL between을 이용한 날짜 검색

드럼치는한동이 2017. 6. 7. 09:24

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'

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

 

between을 사용하는 사람은 많은데, 

가끔보면 마지막 하루의 데이터를 빠트려서 데이터를 추출하는 사람들이 있어서 포스팅 해보았습니다. 

 

힘들게 뽑은 자료, 실수 하지 맙시다!!!  

Comments