最近做的公司内部系统,毕竟是菜鸟,遇到各种问题
谈谈今天的问题吧
需要统计数据库中两个时间的时间间隔,mentor直接在SQL语句中进行了计算
<span style="font-size:24px;">TIME_TO_SEC(TIMEDIFF(IFNULL(i.resolutiondate,NOW()),i.created))</span>
测试时发现处理后的数据出现了负值,一层层定位bug,最终找到了这里
当时两个日期相差120天,于是第一反应是TIMEDIFF溢出
查看MySQL官方文档的TIMEDIFF函数说明

在统计数据库中两个时间间隔时,由于使用TIMEDIFF函数导致出现负值。问题源于TIMEDIFF返回值受限于TIME类型,范围在-839小时到839小时。解决方案是在逻辑层处理时间戳,避免溢出。
最低0.47元/天 解锁文章
1212

被折叠的 条评论
为什么被折叠?



