-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
문제 요약: 날짜 밀림 현상
그래프 시각화 시, 실제 데이터의 날짜보다 하루 전으로 출력되는 현상 발생
- 예시:
- 실제 입력일: 2025-06-01
- 그래프 출력일: 2025-05-31
원인 분석
-
원인 1) MySQL의 날짜 저장 방식 (UTC 기반)
-
MySQL은 내부적으로 UTC 기준으로 날짜를 저장함
-
클라이언트(브라우저)에서
new Date(UTC)로 처리되면 KST 기준 전날로 인식됨 -
DATE(receipt_date)로 자르면 UTC 기준 날짜가 유지되어 한국 시간 기준에서 하루 밀림 발생 -
원인 2) SQL 날짜 비교 범위
WHERE receipt_date <= '2025-06-03'해결 방안
- 해결 1) UTC → KST 변환 함수 도입
// UTC 날짜를 KST로 보정하는 함수
function toKSTDateOnly(dateStr) {
const utc = new Date(dateStr);
const kst = new Date(utc.getTime() + 9 * 60 * 60 * 1000); // +9시간
return kst.toISOString().slice(0, 10); // 'YYYY-MM-DD'
}
-
모든 날짜 출력 시 이 함수로 변환해 사용
-
해결 2) SQL 날짜 범위 수정
WHERE receipt_date >= ? AND receipt_date < DATE_ADD(?, INTERVAL 1 DAY)- 종료일의 자정 직전까지 포함하도록 수정
- 하루 전 데이터까지 포함되는 문제 해결
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels