DATEDIFF 是 MySQL 中的一个日期函数,用于计算两个日期之间的天数差异。

它返回一个整数值,表示两个日期之间相差的天数。

基本介绍

语法

DATEDIFF(date1, date2)

 

  • date1: 第一个日期,可以是一个日期值或表达式。
  • date2: 第二个日期,可以是一个日期值或表达式。

返回值

DATEDIFF 函数返回 date1date2 之间的天数差。

如果 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。

 

作者 admin

百度广告效果展示