DATETIME
타입DATETIME(6)
으로 생성해야 한다.DATETIME(0)
- fractional second 지원 안함.DATETIME(6)
- fractional second 6자리까지 지원DATETIME
(기본으로 0
이 지정됨)일 경우 fractional second 부분이 반올림 되는 현상이 일어난다.DATETIME
에서 반올림 현상을 없애려면 Hibernate Interceptor나 JPA Entity Listener 등의 차원에서 millisecond 이하를 잘라버려야 한다. sendFractionalSeconds=true|false
프라퍼티가 추가 되었다. 이를 통해 JDBC Driver 차원에서 fractional seconds를 전송하지 않게 false
옵션을 지정하면 datetime(0)
에서도 반올림 현상을 막을 수 있다.A new connection property, sendFractionalSeconds=true|false, has been introduced. It controls whether fractional seconds in timestamps are to be truncated on the client side or to be sent to the server side for truncation there. See the entry for the new property in Configuration Properties for Connector/J for details. Thanks to Kwon Nam Son for contributing the code. (Bug #21304726, Bug #77449)
true|false
간의 성능차이가 매우 큰지 여부를 테스트해 보았는데, 차이 거의 없었다. mysql-jdbc-send-fractional-seconds performance testuseFractionalSeconds=false
로 지정하면 millisecond를 전송하지 않는다.TIME_TRUNCATE_FRACTIONAL
sql_mode 를 설정하면 서버측에서 truncate 한다.