【MySQL】时间差函数

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值