사용자 도구

사이트 도구


database:mysql:datetime

MySQL DATETIME type

fractional seconds 지원

  • fractional seconds 라는 것은 초(second)보다 작은 단위인 milliseconds, nanoseconds를 뜻하는 것으로 보임.
  • 5.6 부터 이를 지원하지만, 컬럼을 DATETIME(6)으로 생성해야 한다.
  • DATETIME(0) - fractional second 지원 안함.
  • DATETIME(6) - fractional second 6자리까지 지원
  • 그냥 DATETIME(기본으로 0이 지정됨)일 경우 fractional second 부분이 반올림 되는 현상이 일어난다.
    • 정확히 말하면 컬럼의 밀리세컨드 자리수가 입력데이터보다 적을 때 반올림이 일어나며,
    • 이 현상은 SQL 표준에 의거한 것이며 버그가 아니라고 한다.

fractional seconds 반올림 문제 해결책

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)

sql_mode 설정을 통한 해결

database/mysql/datetime.txt · 마지막으로 수정됨: 2024/01/31 10:21 저자 kwon37xi