2017-05-08 116 views
0

我一直在尋找,我仍然無法理解這是如何工作的。SQLite按日期刪除行

我知道SQLite不存儲Date類型的值,我們必須將它們格式化爲TEXT。我已經這樣做了,但我的問題是如何按日期刪除它們?

因爲如果我做DELETE * FROM TABLE WHERE COLUMN_DATE >= '09-05-2017',我會比較字符串而不是日期,所以我想比較是不對的。

我已經看到人們在做這些類型的比較,即使它是TEXT類型。我對我毫無意義。

+2

你存儲ISO8601格式(YYYY-MM-DD),您的日期的建議?如果你是那麼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