TIMESTAMPDIFF
按指定单位计算时间差
简介
TIMESTAMPDIFF(unit, start, end) 以指定单位返回 end − start,并只计算完整跨越的单位数。参数顺序决定正负号,DAY、MONTH 和 YEAR 也不是简单的秒数换算;涉及生日、账期或跨时区时,应为边界时刻建立测试用例。
基础语法
SELECT TIMESTAMPDIFF(DAY, '2026-01-01', '2026-01-10') AS days;
示例
TIMESTAMPDIFF 示例
示例计算 2026-01-01 到 2026-01-10 之间完整跨越的天数,返回 9,并明确 start、end 的顺序。
运行结果
| days |
|---|
| 9 |
常见问题
TIMESTAMPDIFF 的参数顺序怎样影响结果?
MySQL 计算结束时间减开始时间;交换两个时间会改变正负号。
计算月份或年份时会四舍五入吗?
不会按常规小数四舍五入,它按完整单位边界计算;不足一个完整单位的部分通常不会计入。
跨时区计算前要注意什么?
先把输入统一到明确时区,并确认字段类型;夏令时和会话时区都可能改变小时级差值。
标签
这篇内容是否清楚?
感谢反馈,我们会把它用于后续内容复核。