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

datediff

计算两个日期值 (expr1 - expr2) 之间的差值,并返回以天为单位的结果。 expr1expr2 是有效的 DATE 或 DATETIME 表达式。

注意:计算中仅使用值的日期部分。

datediff 和 days_diff 之间的差异

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

datediff 和 date_diff 之间的区别在于 date_diff 支持 unit 参数,该参数可以返回两个日期值之间以指定单位表示的差值。

语法

INT DATEDIFF(DATETIME expr1,DATETIME expr2)

示例

MySQL > select datediff(CAST('2007-12-31 23:59:59' AS DATETIME), CAST('2007-12-30' AS DATETIME));
+-----------------------------------------------------------------------------------+
| datediff(CAST('2007-12-31 23:59:59' AS DATETIME), CAST('2007-12-30' AS DATETIME)) |
+-----------------------------------------------------------------------------------+
| 1 |
+-----------------------------------------------------------------------------------+

MySQL > select datediff(CAST('2010-11-30 23:59:59' AS DATETIME), CAST('2010-12-31' AS DATETIME));
+-----------------------------------------------------------------------------------+
| datediff(CAST('2010-11-30 23:59:59' AS DATETIME), CAST('2010-12-31' AS DATETIME)) |
+-----------------------------------------------------------------------------------+
| -31 |
+-----------------------------------------------------------------------------------+

参考

date_diff