mysql的一个日常用法的BUG
2014-02-25 17:20
337 查看
一直以来,使用mysql,在统计时间差时,都是使用TIME_TO_SEC(timediff(d2,d1))的方式来处理。
今天偶然发现,该用法,存在BUG,例如:
执行结果:
很明显,times0应该等于times3,times1应该等于times2,但是,实际上,times0不等于times3。
进行更多实验,你会发现,TIME_TO_SEC(timediff(d2,d1))的用法,在时间跨度达到一定的情况下,其结果都是3020399。
具体这个跨度最大值是多少,以及为什么会出现这样的结果,有待去考究,暂记备忘。
最后建议大家使用timestampdiff来进行时间差的计算。
今天偶然发现,该用法,存在BUG,例如:
select TIME_TO_SEC(timediff('2014-02-28 10:13:35', '2013-12-28 14:03:37')) as times0, timestampdiff(second, '2014-02-08 14:03:37', '2014-02-28 10:13:35') as times1, TIME_TO_SEC(timediff('2014-02-28 10:13:35', '2014-02-08 14:03:37')) as times2, timestampdiff(second, '2013-12-28 14:03:37', '2014-02-28 10:13:35') as times3
执行结果:
很明显,times0应该等于times3,times1应该等于times2,但是,实际上,times0不等于times3。
进行更多实验,你会发现,TIME_TO_SEC(timediff(d2,d1))的用法,在时间跨度达到一定的情况下,其结果都是3020399。
具体这个跨度最大值是多少,以及为什么会出现这样的结果,有待去考究,暂记备忘。
最后建议大家使用timestampdiff来进行时间差的计算。
相关文章推荐
- 碰到一个mysql date_format函数的问题,是用法不当还是bug?
- 6.3.1版mysql.data.dll的一个Bug
- 发现mysql一个用法,比较有用
- mysql的锁的一个问题,for update用法。
- 请大家帮我找一找bug —— 一个MySQL解析程序(JAVA实现)
- MySQL ODBC 3.51 Driver的一个bug
- mysql 多线程写入后查询丢失数据的一个bug
- 一个MySQL的奇怪问题-----不知道算不算bug
- MySQL 的一个Bug?
- 偶遇mysql(Percona Server)的一个新bug
- MySQL 5.7.13 的一个BUG
- 发现mysql一个用法,比较有用
- MySQL JDBC 5.1.25的一个坑(应该算是BUG)
- MySQL 5.6的一个bug引发的故障
- MySQL帮助-help功能2:日常管理维护所需命令&show用法
- 关于long_query_time的设置,可不可以说是mysql的一个小小bug呢
- MySQL关于exists的一个bug
- MySQL关于exists的一个bug
- MySQL创建过程,遇到一个奇怪的bug
- 一个MySQL-JDBC驱动bug引起的血案……