mysql中timestampdiff函数与datediff函数区别
结论
两个函数以天为单位的区别,timestampdiff()函数时间差小于48小时的计数为1,datediff()函数以开始时间为第一天,第三天0点之前为1,0点之后为2。
详细说明
测试环境为mysql版本为:8.0.18
1:timestampdiff 测试结果为2的时间组:
此组数据使用datediff 测试结果为同样为2。
2:timestampdiff 测试结果为1的时间组:
此组数据使用datediff 测试结果为2。
下面用两组sql代码以及结果来说明
select datediff(‘2023-06-27 23:59:59’,‘2023-06-26 9:01:22’) #结束时间为第二天23:59:59,结果为1
select datediff(‘2023-06-28 00:00:00’,‘2023-06-26 9:01:22’) #结束时间为第三天0点,结果为2
select datediff(‘2023-06-28 09:01:21’,‘2023-06-26 9:01:22’) #结束时间为第三天,结果为2
select datediff(‘2023-06-28 09:01:22’,‘2023-06-26 9:01:22’) #结束时间为第三天,结果为2
select timestampdiff(day,‘2023-06-26 9:01:22’,‘2023-06-28 00:00:00’) #结束时间-开始时间小于48小时,结果为1
select timestampdiff(day,‘2023-06-26 9:01:22’,‘2023-06-28 09:01:21’) #结束时间-开始时间小于48小时,结果为1
select timestampdiff(day,‘2023-06-26 9:01:22’,‘2023-06-28 09:01:22’) #结束时间-开始时间等于48小时,结果为2
此处需要注意:两个函数开始时间与结束时间的位置是反的。
由此可见两者以天为单位的计算区别。