date_diff
Description
指定された単位で2つの日付値の差を返します。この関数は、unit
の単位で表現された expr1 - expr2
の値を返します。
例えば、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 |
+------------------------------------------------------------------------+