'검색'에 해당되는 글 1건
- 2007/07/16 mysql 의 날짜 범위 검색 - 여러 날짜 형식
# mysql 의 검색. 날짜형식 범위(between) 검색
select * from DateSample where bDate between 'A' and 'B' ;
와 같이 쿼리할때.
bDate 필드가 datetime 같은 날짜 형식으로 되어 있으면 별 문제없이 검색이 됨.
DB 설계할때 미리 처리하는 것이 정석이겠죠.
그런데, 예상치 않은 혹은 확장하게되는 경우에 임시적으로 처리하는 방법.
예를 들어 bDate 가 07/05/12 , 07/5/12 , 2007/5/5 , 2007.5.7 이런식으로 섞여 있다면
어떻게 할까?
하나의 형식에 맞게 전부 고쳐준다. (싫어! 네가 해라!)
그냥 모두 검색할 수 없을까?
# 이런 쿼리로 어떤가?
select * from DateSample where STR_TO_DATE(CONCAT_WS('-', YEAR (bDate), MONTH(bDate), DAY(bDate)), '%Y-%m-%d') between "2007-05-21" and "2007-06-19" ;
이런식으로
1. YEAR , MONTH , DAY 로 각 날짜별 년월일을 구한다.
2. CONCAT_WS 로 각 년월일을 '-' 로 연결(?)한다.
3. 마지막으로 STR_TO_DATE 로 날짜형식으로 바꾼다.
그래서 between 으로 날짜 범위 검색을 하면 정상적으로 검색이 된다.
# 물론 임시적인 조치 이므로 Date 필드는 정확한 형식으로 바꾸어 주는 것이 좋다.
꼭 테스트해보고 사용하시길(책임지지 않습니다. ^^)


이올린에 북마크하기
이올린에 추천하기




Recent Comment