概要
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
外部参考サイト
-
SQLite Query Language: Date And Time Functions(英語)
公式の日時型に関するドキュメント
https://www.sqlite.org/lang_datefunc.html