我有一个Service
可以清理一些文件并执行一些 SQL 查询的工具。这个特定的 SQL 查询应该删除早于 x 天的条目。我这样做的方法是:
public boolean deleteOldCases(int days) {
String deleteQuery = "DELETE FROM " + TABLE_CASES + " WHERE " + DATE + " <= date('now','-" + days + " day')";
Log.d("Delete Query: ", deleteQuery);
SQLiteDatabase db = this.getWritableDatabase();
db.rawQuery(deleteQuery, null);
db.close();
return true;
}
当向我的数据库添加条目时,我会这样做:
public void addCase(Case c) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_ID, c.getCaseNumber());
values.put(STATUS, "");
// Inserting Row
db.insert(TABLE_CASES, null, values);
db.execSQL("Update " + TABLE_CASES + " Set " + DATE + "=datetime() where " + KEY_ID + "= '" + c.getCaseNumber() + "';" );
db.close(); // Closing database connection
}
这个方法是从我的服务中调用的,我可以通过记录来验证这个方法是否被调用。所有这些数据都在 ListView 中显示给用户,这显然是有效的。但是根本没有删除旧条目..
我怀疑这是因为我用 保存了案例date = datetime()
并试图用<=date('now', '-1 day')
有人可以看到做错了什么吗?