2011-06-28 76 views
2

我在android sqlite數據庫表中有一列。在列中的值是這樣的:從android sqlite表中刪除

2011/06/01 
2011/06/02 
2011/06/05 
2011/06/10 
2011/06/11 
2011/06/13 
2011/06/15 
2011/06/16 
2011/06/25 
2011/06/26 

我有一個字符串today="2011/06/27"

現在我想刪除這些行其列值比從5今天天以上。

如何修改代碼以實現此目的?

return db.delete(DATABASE_TABLE,where date="", null) > 0; 
+5

使用在你的SQL日期列不是字符串 – Blundell

+0

@Blundell應該是答案,而不是評論:) –

+0

@Blundell:我用日期列 – Rasel

回答

-1

您應該使用存儲過程而不是寫入服務。它會使您的應用程序更容易自動更新記錄。

見鏈接:http://searchoracle.techtarget.com/answer/Time-based-stored-procedure-to-check-table-and-update-old-records

另一種解決方案是使用日期,而不是字符串。當你運行你的服務,然後獲取數據作爲日期,然後你可以進行簡單的比較。

+1

SQLite不提供存儲過程。 – Flo

+0

但是,我進一步檢查了SQLite沒有提供基於時間的存儲過程。 –

0

您必須以其他格式存儲您的日期,請檢查the date function of SQLite。使用YYYY-MM-DD而不是YYYY/MM/DD。您的日期已經通過字符串表示法定義了您的日期。所以你可以使用SQLite的日期函數來選擇正確的行。

大於5天的日期將被這樣查詢。

... WHERE datecolumn < date('now', '-5 days') ... 
+0

是我的日期列不被視爲日期 – Rasel

+0

添加您的創建表語句,以便我們可以看到您創建表的人。 – Flo

+0

private static final String USAGE_TABLE =「create table batteryUsage(id integer primary key autoincrement,」 \t \t \t +「date date not null,time text not null,level integer)」; – Rasel

0

有一個在sqllite沒有日期型

你只是存儲數據所代表的值作爲一個字符串或INT

然後使用日期基於功能sqllite來獲取值