DATEDIFF 是 MySQL 中的一个日期函数,用于计算两个日期之间的天数差异。
它返回一个整数值,表示两个日期之间相差的天数。
基本介绍
语法
DATEDIFF(date1, date2)
date1
: 第一个日期,可以是一个日期值或表达式。date2
: 第二个日期,可以是一个日期值或表达式。
返回值
DATEDIFF
函数返回 date1
和 date2
之间的天数差。
如果 date1
早于 date2
,返回值为负数;
如果 date1
晚于 date2
,返回值为正数;
如果两个日期相同,返回值为 0
。
实战
1、计算两个日期之间的天数差
SELECT DATEDIFF(‘2024-08-09’, ‘2024-08-01’) AS days_diff;
结果: 8。因为 ‘2024-08-09’ 比 ‘2024-08-01’ 晚 8 天。
SELECT DATEDIFF(‘2024-08-01’, ‘2024-08-09’) AS days_diff;
结果: -8。因为 ‘2024-08-01’ 比 ‘2024-08-09’ 早 8 天。
2、计算今天和指定日期之间的天数差
SELECT DATEDIFF(CURDATE(), ‘2024-08-01’) AS days_diff;
3、使用 DATEDIFF
在排序中
假设你有一个表 events,有一个 event_date 列,你想按距离今天的天数来排序:
SELECT * FROM events
ORDER BY DATEDIFF(event_date, CURDATE());
注意事项
- 如果 date1 或 date2 其中一个是 NULL,DATEDIFF 的结果也是 NULL。
- DATEDIFF 只计算日期部分,忽略时间部分。如果需要计算精确到小时、分钟或秒的差异,应该使用其他函数,如 TIMESTAMPDIFF。