stop rounding times #1172
stop rounding times #1172
Conversation
fixes #1121
https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html MySQL supports only milliseconds. Do we need to send nanoseconds? |
You mean microseconds? At least, we need to send 100 nanoseconds (7 digits) precision. Some examples:
As you say, currently MySQL only supports up to microseconds. |
I think you are right, but still feel it is a bit too much. #1121 is really a bug. Round off 1.4449995 to 1.45 doesn't make sense at all. Let's check another connectors behavior. |
It seems Connector/J just nano/1000 when store it in binary protocol. https://github.com/mysql/mysql-connector-j/blob/d64b664fa93e81296a377de031b8123a67e6def2/src/main/core-impl/java/com/mysql/cj/ServerPreparedQueryBindValue.java#L325 But they round or truncate nanoseconds based on TIME_TRUNCATE_FRACTIONAL sql_mode. |
I think this pull request is good for v1.6. @shogo82148 would you merge master branch to run CI? |
@methane I did! |
Is it safe to trim trailing 0s? |
Maybe, it is. |
It looks that starting MySQL server fails on macOS. it is not due to my pull request. https://github.com/go-sql-driver/mysql/pull/1172/checks?check_run_id=1806566232
|
Thank you for your review! |
fe2230a
into
go-sql-driver:master
Description
fixes #1121
Checklist