刚写了个功能,其中的一部分包括统计符合条件订单的arrive_time和receiving_time的差值
想都没多想 就直接 arrive_time-receiving_time,结果超级离谱。笑哭
如下 看一下两个时间差值 其实也就12分钟,这里的5255也不知道是什么数值,秒也不是,毫秒也不对。纳闷
查了一下,原因如下:
实际是mysql的时间相减是做了一个隐式转换操作,将时间转换为整数,但并不是用unix_timestamp转换,而是直接把年月日时分秒拼起来,如2013-04-21 16:59:33 直接转换为20130421165933,由于时间不是十进制,所以最后得到的结果没有意义,这也是导致上面出现坑爹的结果。
要想获得正确的时间相减秒数,有以下三张方式:
1、time_to_sec(timediff(t2, t1)),
2、timestampdiff(second, t1, t2),
3、unix_timestamp(t2) -unix_timestamp(t1)