关于navicat中使用datediff无法实现日期计算的解决方案与拓展
话不多说直接上图
在我想要计算时间差值时发现网上找的这个datediff函数在navicat里并不好使,经过查阅各种资料得出一些结论。
1.如何正确使用datediff函数
通过例子发现在navicat里并不能给datediff函数确定计算单位,但是网上给的sql语句貌似是有单位的,这里我不知道是不是navicat不支持的原因还是说确实不能增加单位。最后计算结果是自动转换以天数计的
2.如何正确使用timediff函数
通过例子发现timediff计算差值是自动转换成小时的,并且最多能够计算出839个小时。这意味着差值过大是没法用timediff函数计算的
3.如何正确使用TIMESTAMPDIFF函数
最终发现还是timestampdiff好用,可以添加单位(几乎任何单位,如时分秒年月日等)。唯一需要注意的是它的计算规则是后面的时间减去前面的时间,这个顺序和datediff,timediff是相反的!细心的人可能发现了,为什么拿datediff算出来的天数和timestampdiff的天数不一样?看下图就明白了。
通过得出小时除以24发现,实际天数为1093.95...可以得出结论timestampdiff为舍去,datediff则严格遵守四舍五入法!