SQLPathLab
日期时间函数 · 进阶

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 的顺序。

运行结果

result
days
9

常见问题

TIMESTAMPDIFF 的参数顺序怎样影响结果?

MySQL 计算结束时间减开始时间;交换两个时间会改变正负号。

计算月份或年份时会四舍五入吗?

不会按常规小数四舍五入,它按完整单位边界计算;不足一个完整单位的部分通常不会计入。

跨时区计算前要注意什么?

先把输入统一到明确时区,并确认字段类型;夏令时和会话时区都可能改变小时级差值。

标签

常用日期时间

这篇内容是否清楚?