본문 바로가기
DB/MySQL

날짜로 데이터 조회 시 주의할 점(날짜 범위)

by Hyeri.dev 2024. 4. 16.
SELECT *
FROM data
WHERE date_time <= '2024-04-15';

위와 같이 조회하면 '<=' 비교 연산자로 인해 4월 15일자도 포함되어 있다고 착각할 수 있으나, 해당 날짜는 포함되지 않고 4월 15일 0시 이전의 데이터만 불러와진다. 

 

해당 날짜를 포함하여 데이터를 조회하고 싶다면 아래와 같이 작성한다.

SELECT *
FROM data
WHERE date_time <= DATE_ADD('2024-04-15', INTERVAL 1 DAY);

DATE_ADD() 함수를 통해 해당 날짜에 1일을 더한 값으로 데이터를 조회한다.

 

위와 같은 쿼리로 변경하였으나 왜인지 모를 이유로 쿼리 결과가 꼬여 15일이 포함되지 않는 결과값이 나왔다. 사수님한테 여쭤보니 정말 단순하게 내부적으로 쿼리가 꼬인 것이니 단순하게 풀어서 돌리라고 하셨다.

 

손수 데이터를 추출하는 쿼리인 경우 해당 문제에 대해 즉각적으로 대응이 가능하나 대용량 데이터의 배치 작업에서 사용하는 쿼리였기 때문에 아래와 같이 변경하였다.

SELECT *
FROM data
WHERE date_time <= '2024-04-16'; # 조회하고 싶은 날의 다음 날