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

datediff

datediff

概要

2つの日付値(expr1 - expr2)の差を計算し、結果を日単位で返します。expr1expr2は有効なDATEまたはDATETIME式です。

注意: 計算には値の日付部分のみが使用されます。

days_diffとの差異:

関数

動作

datediff

日単位の正確な差

'2020-12-25 23:00:00'と'2020-12-24 23:00:01'の差は1です。

days_diff

秒単位で正確な差で、最も近い整数に切り捨てられます

'2020-12-25 23:00:00'と'2020-12-24 23:00:01'の差は0です。

datediffとdate_diffの違いは、date_diffがunitパラメータをサポートし、指定された単位で2つの日付値の差を返すことです。

構文

INT DATEDIFF(DATETIME expr1,DATETIME expr2)

MySQL > select datediff(CAST('2007-12-31 23:59:59' AS DATETIME), CAST('2007-12-30' AS DATETIME));
+-----------------------------------------------------------------------------------+
| datediff(CAST('2007-12-31 23:59:59' AS DATETIME), CAST('2007-12-30' AS DATETIME)) |
+-----------------------------------------------------------------------------------+
| 1 |
+-----------------------------------------------------------------------------------+

MySQL > select datediff(CAST('2010-11-30 23:59:59' AS DATETIME), CAST('2010-12-31' AS DATETIME));
+-----------------------------------------------------------------------------------+
| datediff(CAST('2010-11-30 23:59:59' AS DATETIME), CAST('2010-12-31' AS DATETIME)) |
+-----------------------------------------------------------------------------------+
| -31 |
+-----------------------------------------------------------------------------------+

参考情報