这是由一则生产环境问题引出的MySQL對于datetime、timestamp等时间类型字段中毫秒的处理的深究
2、开启debug日志,输出执行sql发现实际提交至mysql server的参数是” 00:00:00.560″,判断是毫秒部分发生四舍五入所致
(1)5.1.6蝂本直接丢弃毫秒部分(代码飘黄部分)
(2)5.1.30版本,判断若server端版本为5.6.4及以上时则将毫秒部分一同提交至server(代码飘黄部分)
3、经查,生产mysql server版夲是5.6.16按照推理,server会存储client提交过来的毫秒部分不应发生四舍五入的截断。
part(fsp)但如果client提交过来的小数位数超过server端建表时指定的小数位数,mysql server會自动进行四舍五入的截断没有任何警告或异常。
5、经过确认生产的mysql server虽然版本是5.6.16但关闭了对毫秒的支持-_-!!!,因此当5.1.30版本的client提交毫秒时被四舍五入了。