문제 사항
- mybatis를 이용해 LinkedHashMap<String, Object>로 데이터를 return 받을 때, DB에 저장 되어있는 시간(datetime)보다 +9 시간이 되어 출력 됨
원인 파악
추측 1) mySql과 서버(java)의 타임존이 동일하지 않음
> (X) 확인 결과, 둘 다 UTC+9로 설정 되어있음
- 정확한 원인 파악은 하지 못하였지만,
LinkedHashMap<String, Object>로 데이터를 리턴 하며 Timestamp로 변환하는 과정에서 DB에서 뽑아온 값에 timezone을 맞춰 +9를 한 것으로 보임
해결 방안
1) 시간 값 가공
뽑아온 값에 -9 시간을 하여 시간 값을 다시 맞춰 줌
2) 쿼리를 datetime to String 으로 수정
저는 엑셀 다운로드 쪽 구현 시 문제가 생기었기 때문에 그냥 애초부터 문자열로 받아오는 식으로 수정했습니다.
DATE_FORMAT({컬럼명}, '%Y-%m-%d %H:%i:%s')
'Trouble Shooting' 카테고리의 다른 글
[batch] 주석 부분 오류&한글 깨짐 (0) | 2022.01.25 |
---|---|
[swagger] Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. (0) | 2021.06.08 |