SQL 문제를 풀고 다른 분들의 풀이를 보다가 알게된 날짜 필터링
문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/144856
기존에 썼던 방식
where bs.SALES_DATE >= '2022-01-01' and bs.SALES_DATE < '2022-02-01'
또 다른 방식
WHERE YEAR(C.SALES_DATE) = 2022 AND MONTH(C.SALES_DATE) =1
뭔가 조금 더 직관적이고 깔끔하고 가독성도 좋은 것 같다.
근데 여기서 의문이 생겼다 두 쿼리문 모두 날짜를 필터링 하는 역할을 하지만 성능적으로 차이가 있을까?
결론적으로 기존에 사용하던 첫 번째 쿼리가 인덱스 사용 측면에서 유리하여 일반적으로 더 빠르게 실행될 가능성이 크다. 새롭게 알게된 방식이 가독성도 좋고 날짜와 직접적으로 관련된 함수이다 보니 당연히 성능에서도 우수하겠거니 생각했는데 내 생각과는 달랐다. 또 하나의 꿀팁을 얻었다 !