MariaDBでは、DATEDIFF() は、2つの日付の差を日数で返す組み込みの日付と時刻の関数です。
2つの引数を受け入れます。どちらも日付式または日時式です。次に、最初の日付から2番目の日付を差し引きます。
構文
構文は次のようになります:
DATEDIFF(expr1,expr2)
次に、expr1 - expr2を返します。 。
例
次に例を示します:
SELECT DATEDIFF('2030-01-25', '2030-01-20'); 結果:
+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
| 5 |
+--------------------------------------+ ここでも同じですが、日付が入れ替わっています:
SELECT DATEDIFF('2030-01-20', '2030-01-25'); 結果:
+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
| -5 |
+--------------------------------------+ 日時の値
日時の値を使用する例を次に示します。
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59'); 結果:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
| 5 |
+--------------------------------------------------------+ 別の例を次に示します。
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59'); 結果:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
| 0 |
+--------------------------------------------------------+
この場合、ほぼ1日でしたが、完全ではなかったため、結果は0になります。 。
現在の日付
ここでは、NOW()を渡します 2番目の引数として:
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW()); 結果:
+---------------------+-------------------------------+
| NOW() | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 | 3177 |
+---------------------+-------------------------------+ この場合、現在から2番目の日付までの間に3、177日があります。
無効な引数
無効な引数が渡されると、DATEDIFF() nullを返します :
SELECT DATEDIFF('Homer', 'Simpson'); 結果:
+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
| NULL |
+------------------------------+ 引数がありません
DATEDIFF()の呼び出し 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT DATEDIFF(); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
そして:
SELECT DATEDIFF('2030-05-21'); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'