メインコンテンツまでスキップ

date_diff

date_diff

説明

指定された単位で、2つの日付値の差を返します。この関数は 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パラメータをサポートしていないことです。

構文

BIGINT DATE_DIFF(VARCHAR unit, DATETIME expr1, DATETIME expr2)

パラメータ

  • expr1expr2:比較したい2つの日付時刻値です。必須です。サポートされるデータ型はDATETIMEとDATEです。
  • unit:時間差を表現するために使用する単位です。必須です。以下のunit値がサポートされています:year、quarter、month、week、day、hour、minute、second、millisecond。

返り値

BIGINT値を返します。

使用上の注意

  • expr1expr2よりも早い場合、負の値が返されます。
  • 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 |
+------------------------------------------------------------------------+

参照