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

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)

参数

  • expr1expr2:要比较的两个 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 |
+------------------------------------------------------------------------+

参考

datediff