date_diff
Description
指定された単位で2つの日付値の差を返します。この関数は、expr1 - expr2 の値を unit の単位で表現して返します。
例えば、date_diff('second', '2010-11-30 23:59:59', '2010-11-30 20:58:59') は、2つの DATETIME 値の差を秒単位で返します。
この関数は v3.1 からサポートされています。
date_diff と datediff の違いは、datediff() が unit パラメータをサポートしない点です。
Syntax
BIGINT DATE_DIFF(VARCHAR unit, DATETIME expr1, DATETIME expr2)
Parameters
-
expr1とexpr2: 比較したい2つの datetime 値。必須です。サポートされるデータ型は DATETIME と DATE です。 -
unit: 時間差を表現するために使用する単位。必須です。サポートされるunitの値は、year, quarter, month, week, day, hour, minute, second, millisecond です。
Return value
BIGINT 値を返します。
Usage notes
expr1がexpr2よりも前の場合、負の値が返されます。unitが無効な場合、エラーが返されます。- 入力値が NULL の場合、NULL が返されます。
- 指定された日付が存在しない場合、例えば
2022-11-31、NULL が返されます。
Examples
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 |
+------------------------------------------------------------------------+