MySQL的时间进位问题

mysql更新到5.6.4 之后 , 新增了一个叫factional seconds的特性 , 可以记录时间的毫秒值.

但是目前的数据库是不记录毫秒值的 , 所以会产生一个java中时间的Milliseconds超过500就会四舍五入的问题.

例如一个时间是2015-08-31 23:59:59.520 , 毫秒值超过500 , 入库的时候 , 时间就会变成2015-09-01 00:00:00 . 下面的两条sql就可以看出效果.

 

insert into money_record values(null,1711929, 'jerry1bean', NULL, NULL, 20.00, 2.00, 1250, '2015-08-31 23:59:59.500000', NULL, NULL, NULL, 'just a test', NULL);

 

insert into money_record values(null,1711929, 'jerry1bean', NULL, NULL, 20.00, 2.00, 1250, '2015-08-31 23:59:59.499999', NULL, NULL, NULL, 'just a test', NULL);

   

表中就会出现明明是2015-08-31 : 23:59:59这样的tradeTime , 存入2015_08的表后tradeTime却变成9月1号的情况.

P.S 貌似java中的Date是无法显示毫秒的,但是对象里是保存毫秒时间的 , 得用calendar才能打印出来

posted on 2015-08-17 16:17  饕盡天下  阅读(724)  评论(0编辑  收藏  举报