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'