跳到主要内容
版本: 最新版本-3.5

days_diff

返回两个日期表达式之间的天数差值(expr1expr2),精确到天。

days_diff 和 datediff 之间的区别

函数行为示例
days_diff计算精确到秒,并向下舍入到最接近的整数。'2020-12-25 23:00:00' 和 '2020-12-24 23:00:01' 之间的 days_diff 为 0。
datediff计算精确到天。'2020-12-25 23:00:00' 和 '2020-12-24 23:00:01' 之间的 datediff 为 1。

语法

BIGINT days_diff(DATETIME expr1,DATETIME expr2);

参数

  • expr1:结束时间。必须是 DATETIME 或 DATE 类型。

  • expr2:开始时间。必须是 DATETIME 或 DATE 类型。

返回值

返回一个 BIGINT 值。

如果日期不存在,则返回 NULL,例如 2022-02-29。 days_diff() 会将小时、分钟和秒部分纳入计算。如果差值小于 1 天,则返回 0。

示例

select days_diff('2010-11-30 23:00:00', '2010-11-29 23:00:00')
+---------------------------------------------------------+
| days_diff('2010-11-30 23:00:00', '2010-11-29 23:00:00') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+

select days_diff('2010-11-30 23:00:00', '2010-11-29 23:10:00')
+---------------------------------------------------------+
| days_diff('2010-11-30 23:00:00', '2010-11-29 23:10:00') |
+---------------------------------------------------------+
| 0 |
+---------------------------------------------------------+