2013-09-25 96 views
1

如何從這種方式刪除我的行?DELETE與WHERE操作的查詢

我的表:

sqlite> .schema mytable 
CREATE TABLE mytable (_id INTEGER PRIMARY KEY, hash TEXT, date TEXT); 

我想刪除所有這些行(當前時間 - 存儲的時間)> 10秒。 我查詢不工作:

DELETE FROM mytable WHERE (datetime('now') - datetime(date)) > 10; 

提前感謝!

回答

1

也許這會工作:

DELETE FROM mytable WHERE datetime('now') > datetime(date, '+10 seconds') 
+0

這項工作,HalR!你忘記用單引號括住日期時間的第二個參數。非常感謝! – SpecTrum

1

首先,你必須確保你在你的領域date SQLite的有效日期和時間字符串(你不顯示的是什麼數據字段中的任何實例持有)。

然後,您必須使用http://www.sqlite.org/cvstrac/wiki/wiki?p=DateAndTimeFunctions這裏描述的方法之一將日期轉換爲可減的日期。可能最直接的方法是用%s格式化字符串格式化每個值:

strftime('%s', 'now') - strftime('%s', date_col) 
+0

偉大的方法!我會在這裏嘗試。謝謝! – SpecTrum

+0

這是最好的方法。再次感謝! – SpecTrum