반응형
현상
- datetime 자료형으로 설정된 컬럼은 문제없는데, datetime2로 설정된 컬럼을 JPA로 쿼리 하여 LocalDateTime에 넣었을 경우 날짜 2일 오차 발생
- SSMS에서 같은 쿼리 실행 시, 날짜 정상 표시
- ex) 2023-02-09 00:00:00 -> 2023-02-07 00:00:00 으로 표시
환경
- Windows Server 2016
- SQLServer 2016
- Spring boot
- JPA
원인
java7이 포함된 SQL Server의 JDBC버전에 문제가 있습니다. 링크에는 3버전이 문제라고 되어있지만, 4 버전도 같은 문제가 있습니다.
https://support.microsoft.com/kb/2652061
KB2652061 - FIX: SQL Server JDBC Driver 3.0 returns incorrect date values when used with JRE 1.7 by a Java application - Microso
영어 죄송합니다. 이 문서는 귀하의 언어로 사용할 수 없습니다.
support.microsoft.com
해결방법
jdbc driver를 상위 버전을 사용합니다.
주의사항
프로젝트(프로그램)내에 상위 버전이 있더라도 jdk, windows system32 경로 등 우선순위가 더 높은 경로에 sqljdbc4.jar 와 같은 문제가 있는 드라이버가 존재한다면 그 버전을 읽습니다.
728x90
반응형
'back end > java' 카테고리의 다른 글
Spring Security 중복 로그인 방지하는 방법 (0) | 2023.02.14 |
---|---|
[java] gradle로 runnable jar 생성하는 방법 (0) | 2023.02.09 |
SpringBoot 3.0에서 QueryDsl gradle 설정 방법 (0) | 2023.02.06 |
'org.springframework.web.servlet.handler.HandlerInterceptorAdapter' is deprecated (0) | 2023.02.06 |
Windows에 Springboot Service 등록하는 방법 (0) | 2023.02.06 |