- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[DBMS] 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'
이런식으로 단순한 방법으로 쿼리를 만들어 주면 되겠지요. 판단은 여러분들의 몫입니다.
between을 사용하는 사람은 많은데,
가끔보면 마지막 하루의 데이터를 빠트려서 데이터를 추출하는 사람들이 있어서 포스팅 해보았습니다.
힘들게 뽑은 자료, 실수 하지 맙시다!!!
[출처] MSSQL between을 이용한 날짜 검색|작성자 유니
'★─Programing > ☆─DBMS' 카테고리의 다른 글
[DBMS] MSSQL에서 행마다 다른 Random number 발생하기 (0) | 2018.04.10 |
---|---|
[DBMS] MySql, SQLException, Column 'COL_NM' not found (0) | 2017.06.08 |
[DBMS] 오라클 MERGE INTO - 한번에 INSERT, UPDATE 하기 (0) | 2017.06.07 |
[DBMS] MSSQL IDENTITY 값 초기화 (0) | 2017.04.04 |
[DBMS] MySQL - INFORMATION_SCHEMA 사용법 (0) | 2017.03.23 |