关于navicat中使用datediff无法实现日期计算的解决方案与拓展

话不多说直接上图

image

在我想要计算时间差值时发现网上找的这个datediff函数在navicat里并不好使,经过查阅各种资料得出一些结论。

1.如何正确使用datediff函数

image

通过例子发现在navicat里并不能给datediff函数确定计算单位,但是网上给的sql语句貌似是有单位的,这里我不知道是不是navicat不支持的原因还是说确实不能增加单位。最后计算结果是自动转换以天数计的

2.如何正确使用timediff函数

image

通过例子发现timediff计算差值是自动转换成小时的,并且最多能够计算出839个小时。这意味着差值过大是没法用timediff函数计算的

3.如何正确使用TIMESTAMPDIFF函数

image

最终发现还是timestampdiff好用,可以添加单位(几乎任何单位,如时分秒年月日等)。唯一需要注意的是它的计算规则是后面的时间减去前面的时间,这个顺序和datediff,timediff是相反的!细心的人可能发现了,为什么拿datediff算出来的天数和timestampdiff的天数不一样?看下图就明白了。

image

通过得出小时除以24发现,实际天数为1093.95...可以得出结论timestampdiff为舍去,datediff则严格遵守四舍五入法!

image
image

以上内容均为原创,转载请注明出处!本文并没有探索加了单位的datediff函数在mysql数据库里是否好使,欢迎各位大佬进行补充交流。

posted @   Frank&Faner  阅读(318)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示