MySQLでは、DATEDIFF()
を使用できます 2つの日付の違いを見つける関数。それが機能する方法は、2つの引数(日付ごとに1つ)とDATEDIFF()
を提供することです。 2つの日付の間の日数を返します。
以下の例。
構文
まず、構文は次のとおりです。
DATEDIFF(expr1,expr2)
ここで、expr1
は最初のデートで、expr2
2番目の日付です。
例1-基本的な使用法
実例を示します。
SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';
結果:
+--------+ | Result | +--------+ | 29 | +--------+
この例では、最初の日付が2番目の日付より後です。この場合、正の戻り値が得られます。
例2–以前の日付との比較
最初の日付は、2番目の日付より後の日付である必要はありません。最初の引数には以前の日付を使用でき、負の値が返されます。これらの2つの引数を入れ替えると、次のようになります。
SELECT DATEDIFF('2020-10-01', '2020-10-30') AS 'Result';
結果:
+--------+ | Result | +--------+ | -29 | +--------+
例3–日時の値
日時と併用した場合 値の場合、日付の部分のみが日付の比較に使用されます。例:
SELECT DATEDIFF('2020-10-30 23:59:59', '2020-10-01') AS 'Result 1', DATEDIFF('2020-10-01 23:59:59', '2020-10-30') AS 'Result 2';
結果:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 29 | -29 | +----------+----------+
例4–データベースクエリ
DATEDIFF()
の使用例を次に示します。 データベースクエリで。この例では、payment_date
を比較します 今日の日付の列(CURDATE()
を使用 今日の日付を返す関数):
USE sakila; SELECT DATE(payment_date) AS 'Date/Time', CURDATE(), DATEDIFF(payment_date, CURDATE()) AS 'Date' FROM payment WHERE payment_id = 1;
結果:
+------------+------------+-------+ | Date/Time | CURDATE() | Date | +------------+------------+-------+ | 2005-05-25 | 2018-06-25 | -4779 | +------------+------------+-------+