datediff
计算两个日期值 (expr1 - expr2
) 之间的差值,并返回以天为单位的结果。 expr1
和 expr2
是有效的 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 |
+-----------------------------------------------------------------------------------+