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

T-SQLで2つの日付の差を計算する方法

    問題:

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

    例:

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

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

    出発 到着
    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(day, departure, arrival) AS date_difference,
      DATEDIFF(day, departure, arrival) + 1 AS days_inclusive
    FROM travel;
    

    結果は次のとおりです。

    出発 到着 日数
    id date_difference
    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

    ディスカッション:

    日付の違いを見つけるには、 DATEDIFF(datepart、startdate、enddate)を使用します 働き。 datepart 引数は、違いを表現したい日付/日時の部分を定義します。その値はyearにすることができます 、四半期 month day 、など。この例では、日数の差を表現したいので、最初の引数は日です。他の2つの引数は、カウントを開始した日付とカウントを停止した日付です。この場合、 departure および到着 それぞれ。

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


    1. SQL Server:sp_who2の出力をフィルター処理します

    2. SQL Server ManagementStudioおよびTransactSQLでのGOの使用は何ですか?

    3. MariaDBでのUNIX_TIMESTAMP()のしくみ

    4. すべてのパラメータを使用してNSISでpostgresをインストールするにはどうすればよいですか?