JAVA – Value ‘0000-00-00’ can not be represented as java.sql.Timestamp 에러해결

2021. 9. 15. 10:41DB이관

반응형

갑자기 db데이터를 바꾼뒤 로그인하려는데 해당오류가 발생하였다.

동일한 상황을 겪은 사람의 블로그를 보고 해결했다.

해당페이지에서 convertToNull옵션값을 추가했더니 정상적으로 로그인이 .

지금 사용하는 db의경우 deldt  해당한다고 떴는데.

기본값을 null 가지고있음에도 떴음. 기본값이 0000-00-00 00:00:00 아님.

##의문점##

기본값이 설정 되어있는게 0000-00-00 00:00:00 값이 아닌경우인데도 해당 오류가 발생하니..참 알다가도 모르겠다.

1. 문제상황

> mysql의 DATETIME컬럼에 접근시 에러가 발생하였다. 

* 에러메시지
Value '0000-00-00' can not be represented as java.sql.Timestamp

 

2. 문제해결

> 이에러는 mysql의 테이블 컬럼에 디폴트 값을 0000-00-00 00:00:00로 정의 하였을때 Connector/J driver에서 에러로 판단해서 발생하게 되므로 접속시 접속시 자동으로 null로 변환해주는 옵션을 추가한다.

* jdbc:mysql://{IP}:{포트}/{디비명}?zeroDateTimeBehavior=convertToNull

 

※ 개인적으로 특별한 일이 없는한 ‘0000-00-00 00:00:00’의 기본값을 줄 필요는 없다고 생각한다.

 

출처: <https://myblog.opendocs.co.kr/archives/836>

반응형