봉봉의 개인 블로그
MSSQL between을 이용한 날짜 검색 본문
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' 이런식으로 단순한 방법으로 쿼리를 만들어 주면 되겠지요. 판단은 여러분들의 몫입니다. [출처] MSSQL between을 이용한 날짜 검색|작성자 유니 |
'관련 지식' 카테고리의 다른 글
VIEW (0) | 2017.05.26 |
---|---|
SQL이 아닌 함수(getGeneratedKeys())를 이용한 AutoIncrement 키값 가져오기 (0) | 2017.05.25 |
자바(JAVA) 형 변환(String과 int) (0) | 2017.05.06 |
String 클래스의 유용한 메소드(함수)들 (4) | 2017.05.06 |
statement_PreparedStatement_차이점조사 (0) | 2017.04.24 |