TIMESTAMPDIFF
语法:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
结果:返回(时间2-时间1)的时间差,结果单位由interval参数给出。
interval参数如下表所示:
interval参数 | 含义 |
frac_second | 毫秒 |
second | 秒 |
minute | 分钟 |
hour | 小时 |
day | 天 |
week | 周 |
month | 月 |
quarter | 季度 |
year | 年 |
示例:
SELECT TIMESTAMPDIFF(SECOND,'2021-10-01','2022-02-25');
-- 12700800
SELECT TIMESTAMPDIFF(MINUTE,'2021-10-01','2022-02-25');
-- 211680
SELECT TIMESTAMPDIFF(HOUR,'2021-10-01','2022-02-25');
-- 3528
SELECT TIMESTAMPDIFF(DAY,'2021-10-01','2022-02-25');
-- 147
SELECT TIMESTAMPDIFF(WEEK,'2021-10-01','2022-02-25');
-- 21
SELECT TIMESTAMPDIFF(MONTH,'2021-10-01','2022-02-25');
-- 4
SELECT TIMESTAMPDIFF(QUARTER,'2021-10-01','2022-02-25');
-- 1
SELECT TIMESTAMPDIFF(YEAR,'2021-10-01','2022-02-25');
-- 0
DATEDIFF
语法:DATEDIFF(expr1,expr2)
结果:传入两个日期参数,比较DAY天数,expr1减去expr2的天数值,返回差值。
select DATEDIFF('2022-02-25','2021-12-22');
-- 65
select DATEDIFF('2022-02-25','2022-03-10');
-- -13
select DATEDIFF('2022-02-25 12:00:00','2022-03-10 23:59:59');
-- -13
TIMEDIFF
语法:TIMEDIFF(expr1,expr2)
结果:返回两个时间相减得到的差值,expr1-expr2
select TIMEDIFF('2022-02-25 12:00:00','2022-02-24 13:00:00');
-- 23:00:00
select TIMEDIFF('2022-02-25 12:23:31','2022-02-24 09:22:22');
-- 27:01:09
select TIMEDIFF('12:23:31','09:22:22');
-- 03:01:09
select TIMEDIFF('00:08:00','00:10:59');
-- -00:02:59
该函数可用于比较时分秒的大小,比如峰谷值计算。
PERIOD_DIFF
语法:PERIOD_DIFF(P1,P2)
结果:返回两个时间相差的月份数,注意它是前一个时间减后一个时间
参数格式:
参数 | 描述 |
P1 | 日期。格式:YYMM或YYYYMM |
P2 | 另一个日期。格式:YYMM或YYYYMM |
示例:
SELECT PERIOD_DIFF(201703, 201803);
-- -12
SELECT PERIOD_DIFF(1803, 1703);
-- 12