2023年1月30日月曜日

SQLite3で二つの日付間の日数を計算する

概要

SQLite ではdate関数等の結果を加減算しても期待するような結果にはならない。 二つの日付間の日数を計算するにはユリウス通日を利用する必要がある。

環境

  • Windows 10
  • sqlite3 (3.40.1)

date()やdatetime()の加減算では計算出来ない


sqlite> select date('2023-01-31') - date('2022-12-31');
1
sqlite> select datetime('2023-01-31 09:00:00') - datetime('2022-12-31 09:00:00');
1
                    

期間(日数)を計算するにはユリウス通日を使用する


sqlite> select julianday('2023-01-31') - julianday('2022-12-31');
31.0
                    

外部参考サイト