String
次の形式で、データベースと同じように日付を保存します。
YYYY-MM-DD HH:MM:SS
これは、サポートされている形式の 1 つです ( http://www.sqlite.org/lang_datefunc.html )。ここで、これらの保存された日付 (文字列) を別の日付と比較したいと思います。私の日付は columncolumn_date
に保存されているので、これを試しています:
SELECT * FROM MyTable
WHERE
(Date(column_date) >= Date (2000-01-01) AND Datetime(column_date) <= Datetime (2050-01-01))
ドキュメントを読んでいるThe date and time functions use a subset of IS0-8601 date and time formats. The date() function returns the date in this format: YYYY-MM-DD.
ので、私はそれを正しくやっていると思います-保存された文字列から日付を作成し、それを別の文字列から作成された日付と比較します。
column_date
しかし、今年の日付であっても機能しません。ご覧のとおり、開始日と終了日は非常に好意的です。これも試しました(日付の代わりに日時を使用):
SELECT * FROM MyTable
WHERE
(datetime(column_date) >= Date (2000-01-01) AND datetime(column_date) <= Datetime (2050-01-01))
とこれ (<= と >= の代わりに between を使用)
SELECT * FROM MyTable
WHERE
(Date(column_date) between Date (2000-01-01) AND Datetime (2050-01-01))
および他のすべての可能な組み合わせ。私は何を間違っているのですか、私は愚かですか、それともドキュメントが嘘をついているのですか、それとも非常に重要なことを見逃しているのですか? 数時間解決策を見つけようとしていますが、何もうまくいきません...