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

PostgreSQL/Oracleで2つの日付の差を計算する方法

    問題:

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

    例:

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

    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,
      arrival - departure AS date_difference,
      arrival - departure + 1 AS days
    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

    ディスカッション:

    PostgreSQLまたはOracleで日付の差を日数としてカウントするには、一方の日付をもう一方の日付から減算するだけです。 arrival - departure

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


    1. MySQLで文字列を16進数に変換する方法– HEX()

    2. 管理者–Linux用の高度なWebベースのデータベース管理ツール

    3. MySQLにあるようなブールデータ型はMicrosoftSQLServerにありますか?

    4. GraphQLとPostgreSQLを接続する方法