sql >> データベース >  >> RDS >> Mysql

DATEDIFF()の例– MySQL

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


    1. SQLServerインデックスの破損を修復するための無料の方法

    2. T-SQL動的ピボット

    3. Rails:Herokuへのデプロイ、多くの問題

    4. MySQLでシーケンスを作成する方法