メインコンテンツまでスキップ
バージョン: Latest-3.4

datediff

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

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

datediff と days_diff の違い:

FunctionBehaviorExample
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 つの日付値の差を返すことができる点です。

Syntax

INT DATEDIFF(DATETIME expr1,DATETIME expr2)

Examples

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 |
+-----------------------------------------------------------------------------------+

References

date_diff