2017-05-08 6 views
0

私は検索していますが、私はまだこれがどのように動作するのか理解できません。SQLiteは日付で行を削除します

私は、SQLiteはDate型の値を格納していないことを知っており、それらをTEXTにフォーマットする必要があります。私はすでにそれをしましたが、私の質問はどのように日付で削除するのですか?

もし私がDELETE * FROM TABLE WHERE COLUMN_DATE >= '09-05-2017'をしたら、私は文字列と日付とを比較するので、比較は正しくないと思います。

TEXTタイプであっても、このタイプの比較を行っている人がいます。私は私には意味がありません。推奨されているよう

+2

あなたは(YYYY-MM-DD)ISO8601形式で日付を格納していますか?もしあなたがvarroの答えが正しいなら、そうでなければ適切なフォーマットを使用するようにデータベースを再構築し、varroの答えは正しいでしょう。 –

答えて

2

それはあなたが標準的なテキストフォーマットを使用する場合は動作し、正しい構文を使用しますが、例えば、

DELETE FROM TABLE WHERE COLUMN_DATE >= '2017-05-09' 
+0

しかし、一日の終わりにはそれらの文字列だけではありませんか? –

+0

はい - 文字列(またはSQLite用語のTEXT)です。だから、比較すると文字列を比較しています。つまり'09 -05-2017 '<'10 -01-2016'です。これは文字列が辞書的に並べ替えるためですが、正規のISO形式を使用すると、 2017-05-09 '> '2016-01-10'のようになります。 – varro

関連する問題