首页 > 数据库技术 > 详细

MySQL TIMESTAMP 类型加索引时出现的bug

时间:2017-11-17 20:53:24      阅读:2203      评论:0      收藏:0      [点我收藏+]

    数据库:MySQL,版本:5.1.45

    查询语句1:

    select id, settlement_begin_time , settlement_end_time  from mkt_vendor_settlement_brief where settlement_begin_time >= ‘2017-09-01 00:00:00.0‘ and settlement_end_time <=  ‘2017-09-30 23:59:59.0‘;

    结果:

    技术分享图片

    查询语句2:

    select id, settlement_begin_time , settlement_end_time  from mkt_vendor_settlement_brief where settlement_begin_time >= ‘2017-09-01 00:00:00‘ and settlement_end_time <=  ‘2017-09-30 23:59:59.0‘

    结果:

    技术分享图片

     对settlement_begin_time 添加了索引,查询语句的区别: 一个有".0"一个没有“.0”

     删掉索引后有".0"的也能正常查询。

     经调查,这是MySQL的一个bug,在后续版本中已经修复,本人使用mysql5.5进行测试一切正常。

     出现此问题时的解决方案:

      1.  升级MySQL版本,最有效

      2. 曲线救国,Java代码中,预先将Timestamp类型的数据进行格式化,然后以字符串的方式放入查询语句,因为mysql-jdbc调用的  “PreparedStatement” 的setTimestamp方法会加上".0"

MySQL TIMESTAMP 类型加索引时出现的bug

原文:http://www.cnblogs.com/hungry-bird/p/7853170.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!