MySQL中求时间差通常使用的是DATEDIFF()和TIMESTAMPDIFF()函数,这两个函数的实现方法略有差别,下文将着重介绍它们的用法及区别。
DATEDIFF()函数求时间差
DATEDIFF(date1,date2)函数用于计算日期date1和日期date2之间的天数差,date1和date2应该是以‘YYYY-MM-DD’格式表示的日期。
例如:
SELECT DATEDIFF(‘2021-08-10’, ‘2021-07-10’) AS days_diff;
结果为31,表示两个日期之间相差31天。
TIMESTAMPDIFF()函数求时间差
TIMESTAMPDIFF(unit,datetime1,datetime2)函数用于返回datetime1和datetime2之间的时间差,unit参数用于指定返回的时间单位。
例如:
SELECT TIMESTAMPDIFF(MINUTE,’2021-08-10 12:00:00′,’2021-08-10 12:45:00′) AS minutes_diff;
结果为45,表示两个时间之间相差45分钟。
两个函数的区别
DATEDIFF()函数只能计算天数差,而TIMESTAMPDIFF()函数可以根据unit参数返回任意时间单位的差值。
再举个例子:
SELECT TIMESTAMPDIFF(SECOND,’2021-08-10 12:00:00′,’2021-08-10 12:01:30′) AS seconds_diff;
结果为90,表示两个时间之间相差90秒。
总结
MySQL中求时间差通常使用DATEDIFF()和TIMESTAMPDIFF()函数,具体使用还要根据不同的情况选择不同的函数。