요약: 가독성이 좋은 쪽으로 + 성능에 유리한 쪽으로
주문 정보를 가져오는 기준으로 7일 전 15시
를 사용하고 있다. 기존에는 쿼리문에 해당 부분을 계산하는 SQL이 작성되어 있었다.
# 기존 쿼리
SELECT *
FROM tb1
WHERE reg_date >= DATE_SUB(CAST(CONCAT(CAST(SYSDATE() AS DATE),' 15') AS DATETIME), INTERVAL 7 DAY)
근데 개인적으로는 기준이 되는 부분(DATE_SUB(...생략)
)을 바로 알아보기 어려웠고 하나하나 뜯어보고 나서야 알 수 있었다.
그리고 이런 날짜 기준은 정책상으로 변경될 수 있는 값이라고 보았다. 예를 들어 현재는 7일 전 15시 이후이지만 7일전 12시 이후 또는 3일 전, 15일 전 등으로 변경된다던지 말이다.
그래서 이 시간 계산을 자바단에서 해주도록 수정해주었다.
# 수정한 쿼리
SELECT *
FROM tb1
WHERE reg_date >= #dateTime#
// 쿼리 조건으로 넘겨줄 날짜 및 시간 설정
LocalDateTime dateTime = LocalDateTime.of(
LocalDate.now(),
LocalTime.of(15, 0)).minusDays(7));