Blog Content

    티스토리 뷰

    mysql에서 datetime 타입의 데이터에서 나타나는 오류

    g5_shop_order 테이블에서 od_invoice_time이라는 필드가 있다.

    필드 정보는 다음과 같다.



    Field : od_invoice_time

    Type : datetime

    Default : 0000-00-00 00:00:00




    그러나 이 필드를 불러와 Java Class에 매핑하며 문제가 발생했다.

    오류 내용은 다음과 같다.




    There was an unexpected error (type=Internal Server Error, status=500).

    Error attempting to get column 'od_invoice_time' from result set. Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp ; SQL []; Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp; nested exception is java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp



    이 문제는 datetime 타입의 필드에 Default값을 0000-00-00 00:00:00 으로 주었을 때 나타나는 문제라고 한다.

    다음과 같이 .properties 파일에 datasource 세팅을 해주어 해결하였다. mysql에서 데이터를 읽어올 때 제로값을 가진 데이터는 null로 읽어오라는 설정을 추가하는 것이다.


    spring.datasource.tomcat.connection-properties=zeroDateTimeBehavior=convertToNull;





    Comments