date_diff
返回两个日期值之间的差值,以指定的单位表示。此函数返回以 unit
为单位表示的 expr1 - expr2
的值。
例如,date_diff('second', '2010-11-30 23:59:59', '2010-11-30 20:58:59')
返回两个 DATETIME 值之间的差值,单位为秒。
此函数从 v3.1 开始支持。
date_diff 和 datediff 的区别在于 datediff() 不支持 unit
参数。
语法
BIGINT DATE_DIFF(VARCHAR unit, DATETIME expr1, DATETIME expr2)
参数
-
expr1
和expr2
:要比较的两个 datetime 值,必需。支持的数据类型为 DATETIME 和 DATE。 -
unit
:用于表示时间差的单位,必需。支持以下unit
值:year、quarter、month、week、day、hour、minute、second、millisecond。
返回值
返回一个 BIGINT 值。
使用说明
- 如果
expr1
早于expr2
,则返回负值。 - 如果
unit
无效,则返回错误。 - 如果任何输入值为 NULL,则返回 NULL。
- 如果指定的日期不存在,例如
2022-11-31
,则返回 NULL。
示例
mysql> select date_diff('second', '2010-11-30 23:59:59', '2010-11-30 20:58:59');
+-------------------------------------------------------------------+
| date_diff('second', '2010-11-30 23:59:59', '2010-11-30 20:58:59') |
+-------------------------------------------------------------------+
| 10860 |
+-------------------------------------------------------------------+
mysql> select date_diff('minute', '2010-11-30 23:59:59', '2010-11-30 20:58:59');
+-------------------------------------------------------------------+
| date_diff('minute', '2010-11-30 23:59:59', '2010-11-30 20:58:59') |
+-------------------------------------------------------------------+
| 181 |
+-------------------------------------------------------------------+
mysql> select date_diff('hour', '2010-11-30 23:59:59', '2010-11-30 20:58:59');
+-----------------------------------------------------------------+
| date_diff('hour', '2010-11-30 23:59:59', '2010-11-30 20:58:59') |
+-----------------------------------------------------------------+
| 3 |
+-----------------------------------------------------------------+
mysql> select date_diff('millisecond', '2010-11-30 23:59:59', '2010-11-30 20:58:59');
+------------------------------------------------------------------------+
| date_diff('millisecond', '2010-11-30 23:59:59', '2010-11-30 20:58:59') |
+------------------------------------------------------------------------+
| 10860000 |
+------------------------------------------------------------------------+