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

MySQLで2つの日付の差を計算する方法

    問題:

    日付タイプの列が2つあり、それらの差を計算したい。

    例:

    travel テーブルには、次の3つの列があります:iddeparture 、およびarrivalarrivalの差を計算したい およびdeparture 、またはarrivalからの日数 包括的に出発します。

    travel テーブルは次のようになります:

    出発 到着
    id
    1 2018-03-25 2018-04-05
    2 2019-09-12 2019-09-23
    3 2018-07-14 2018-07-14
    4 2018-01-05 2018-01-08

    解決策:

    SELECT
      id,
      departure,
      arrival,
      DATEDIFF(arrival, departure) AS date_difference,
      DATEDIFF(arrival, departure) + 1 AS days_inclusive
    FROM travel;
    

    結果は次のとおりです。

    出発 到着
    id date_difference days_inclusive
    1 2018-03-25 2018-04-05 11 12
    2 2019-09-12 2019-09-23 11 12
    3 2018-07-14 2018-07-14 0 1
    4 2018-01-05 2018-01-08 3 4

    ディスカッション:

    MySQLの日付間の差をカウントするには、DATEDIFF(enddate, startdate)を使用します 働き。 startdateの違い およびenddate 日数で表されます。この場合、enddate arrivalです およびstartdate departureです 。

    ただし、ほとんどの場合、本当に必要なのは、最初のデートから2番目のデートまでの日数です包括的 。差額に1日を追加する必要があります:DATEDIFF(arrival, departure) + 1


    1. R12.2への段階的なアップグレードプロセスパート-2(R12.2.0のメインアップグレードドライバー)のアップグレード

    2. セーフティネット

    3. 自分のドッグフードを食べる–MariaDBでJIRAを実行する

    4. OracleAppsR12.2でTLSを有効にする