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

MySQLで2つの日付の間の日数を見つける方法

    問題:

    MySQLデータベースの2つの日付の差を日数で取得したいと考えています。

    例:

    私たちのデータベースには、food id列にデータがあります 、namepurchase_date 、およびexpiration_date

    id 名前 Purchase_date expiration_date
    1 パン 2019-07-20 2019-08-22
    2 バター 2018-07-30 2019-08-10
    3 ミルク 2019-01-12 2019-01-13
    4 ヨーグルト 2019-02-25 2019-02-24

    食品ごとに、商品の名前と、有効期限から購入日までの日数を取得しましょう。

    解決策:

    DATEDIFF()を使用します 働き。作成するクエリは次のとおりです。

    SELECT
      name,
      DATEDIFF(expiration_date, purchase_date) AS days
    FROM food;
    

    クエリの結果は次のとおりです。

    name
    パン 33
    バター 376
    ミルク 1
    ヨーグルト -1

    ディスカッション:

    DATEDIFF()を使用します MySQLデータベースの2つの日付の間の日数を取得する関数。この関数は2つの引数を取ります:

    1. 終了日。 (この例では、expiration_date 列。)
    2. 開始日。 (この例では、purchase_date 列。)

    これらの引数は、date / datetime値、date / datetime値を返す式、またはdatetimeまたはdateデータ型の列にすることができます。

    この関数は、終了日から開始日を減算し、日数を整数として返します。この例では、バター 「2018-07-30」に購入されましたが、有効期限は「2019-08-10」でした。購入後、376日間食べることができました。ヨーグルトは古い製品として購入されたことに注意してください。日数の差は-1であり、購入日は有効期限よりも遅くなっています。


    1. ClusterControlを使用したSpiderでのMariaDBシャーディングのデプロイ

    2. SQLiteクエリ結果で文字列を一重引用符で囲みます

    3. PostgreSQL、SQL状態:42601

    4. SQLServerで時間フィールドを合計する方法