SQL

MySQL between 날짜 조회

초코비니 2016. 6. 19. 12:25

에구야 -ㅅ-;


잠깐 제가 어제 만든 앱에 접속자가 몇명인지 뽑고 싶어서 잠깐 쿼리문을 치다가 함수가 기억 안나는겁니다.


그래서 검색을 해봤는대...


뭐 정답아닌 정답을 써주신 글이 보이더군요.


일단 작성한 분의 글을 읽어보니


select * from test where date_format(test_date,'%Y-%m-%d') between '2016-06-18' and '2016-06-19';


였습니다.


뭐 원하는 결과값을 뽑아 낼 수는 있습니다.


근대 where 조건절에 date_format을 사용하는건 바람직하지 않죠.


이유를 설명하겠습니다.


test 테이블에 데이터가 1000건이 있습니다.


위 쿼리는 1000개의 데이터를 date_format 함수로 변경을 하고 조회를 하게되는거죠.


바람직하지 않습니다.


대신 뒤의 between 부분에 date_format을 사용한다면 2개의 문자열만 변환을 거치게 되겠죠.



select * from test where test_date between date_format('20160618','%Y%m%d') and date_format('20160619','%Y%m%d');


이러한 형식으로 말이죠.


데이터 건수가 많아지면 첫번째 쿼리는 속도의 문제가 생기게됩니다.


그래서 저는 항상 후자 방식의 쿼리문으로 사용하고 있습니다.


참고하세요.