1、 TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
用于计算两个日期的时间差,可以计算到年、季度、月、星期、天、时、分、秒
unit日期比较返回的时间差单位
定义如下:
unit 定义如下
SECOND:秒
MINUTE:分钟
HOUR:小时
DAY:天
WEEK:星期
MONTH:月
QUARTER:季度
YEAR:年
unit: 日期比较返回的时间差单位,常用可选值如下:
-- 相差:25秒
SELECT TIMESTAMPDIFF(SECOND,'2023-08-26 14:57:00','2023-08-26 14:57:25');
-- 相差:5分钟
SELECT TIMESTAMPDIFF(MINUTE,'2023-08-26 15:00:00','2023-08-26 15:05:00');
-- 相差:5小时
SELECT TIMESTAMPDIFF(HOUR,'2023-08-26 11:20:00', '2023-08-26 16:20:00');
-- 相差:2天
SELECT TIMESTAMPDIFF(DAY,'2023-08-26 11:20:00', '2023-04-25 11:20:00');
-- 相差:1星期
SELECT TIMESTAMPDIFF(WEEK,'2023-08-26 11:20:00', '2023-04-30 11:20:00');
-- 相差:1月
SELECT TIMESTAMPDIFF(MONTH,'2023-08-26 11:20:00', '2023-05-30 11:20:00');
-- 相差:1季度
SELECT TIMESTAMPDIFF(QUARTER,'2023-08-26 11:20:00', '2023-07-23 11:20:00');
-- 相差:1年
SELECT TIMESTAMPDIFF(YEAR,'2023-08-26 11:20:00', '2023-08-26 11:20:00');
2、TIMESTAMPDIFF函数返回datetime_expr2 - datetime_expr1的结果,其中datetime_expr1和datetime_expr2可以是DATE或DATETIME类型值
此外:
TIMESTAMPDIFF函数允许其搭配使用的参数datetime_expr1和datetime_expr2具有混合类型
比如:
datetime_expr1是DATE类型值,datetime_expr2是DATETIME类型值,TIMESTAMPDIFF函数会将datetime_expr1自动转换成DATETIME类型值(即在日期后面加上时间“00:00:00”)
3、TIMESTAMPDIFF函数可以结合mysql内置的日期函数进行搭配使用
-- 可以结合日期函数进行搭配使用
SELECT TIMESTAMPDIFF(MINUTE,'2023-09-01', CURRENT_DATE());
SELECT TIMESTAMPDIFF(MINUTE,'2023-09-01 15:15:00',NOW());
SELECT TIMESTAMPDIFF(MINUTE,'2023-09-01 15:15:00',CURRENT_TIMESTAMP());
-- 上述日期函数补充说明
-- CURRENT_DATE()用于返回当前时间
-- 示例结果:2023-09-01
SELECT CURRENT_DATE();
-- NOW()用于返回当前日期和时间
-- 示例结果:2024-09-01 11:23:00
SELECT NOW();
-- CURRENT_TIMESTAMP()用于返回当前日期和时间
-- 示例结果:2023-09-01 11:23:00
SELECT CURRENT_TIMESTAMP();