days_diff
返回两个日期表达式之间的天数差值(expr1
− expr2
),精确到天。
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 |
+---------------------------------------------------------+