Post

쿼리에 BETWEEN 사용을 피해야 하는 이유

그건 BETWEEN<= x AND x <= 과 동일하기 때문이다.
<= x <=date / datetime에 따라 동작이 다르기 때문에, 자칫 헷갈려 의도하지 않은 방향으로 동작 할 수 있다.

1
2
3
4
x  date        datetime
-  ----------  -------------------
a, 2023-01-01, 2023-01-01 00:00:00
b, 2023-01-02, 2023-01-02 00:00:00
1
2
3
4
WHERE date BETWEEN '2023-01-01' AND '2023-01-02'
결과: a, b
WHERE datetime BETWEEN '2023-01-01' AND '2023-01-02'
결과: a
1
2
3
4
WHERE '2023-01-01' <= date AND date < '2023-01-02'
결과: a
WHERE '2023-01-01' <= datetime AND datetime < '2023-01-02'
결과: a

date / datetime에서 결과가 동일한 <= x AND x < 를 쓰는 것이 좋다!

This post is licensed under CC BY 4.0 by the author.