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

SQLiteで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,
      JULIANDAY(arrival) - JULIANDAY(departure) AS date_difference,
      JULIANDAY(arrival) - JULIANDAY(departure) + 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

    ディスカッション:

    日付の差をカウントするには、JULIANDAY()を使用します 関数。紀元前4714年11月24日のグリニッジで正午からの日数をカウントします。 JULIANDAY(date)を使用します 2つの日付のそれぞれについて。マイナス記号(-)を使用してそれらを減算するだけです:

    JULIANDAY(arrival) - JULIANDAY(departure)

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

    JULIANDAY(arrival) - JULIANDAY(departure) + 1.


    1. SQLクエリを作成するための9つのベストプラクティス

    2. OracleのNLS_INITCAP()関数

    3. SQLite自己参加

    4. 大きな(14 GB)MySQLダンプファイルを新しいMySQLデータベースにインポートするにはどうすればよいですか?