2013-07-01 57 views
0

我只是好奇,是date保留字我SQLite?我有一個被命名爲日期列,並試圖運行此查詢:SQLite查詢 - 日期保留字?

DELETE FROM cases WHERE date <= date('now','-1 day') 

通過這樣做:

String query = "DELETE FROM cases WHERE date <= date('now','-1 day')"; 

     SQLiteDatabase db = this.getWritableDatabase(); 

     Cursor cursor = db.rawQuery(query, null); 
     boolean found = cursor.moveToFirst(); 
     if(found) { 
      int result = cursor.getCount(); 
      Log.w("DeleteOldCases: ", "Result: " + Integer.toString(result)); 
      db.close(); 
     } 

但光標只是給了我一個假回來,打電話moveToFirst時。但在我的數據庫中,實際上有一些行比一天早。任何人都可以在這裏解釋什麼是錯的嗎?

謝謝!

+0

我是這麼認爲的,因爲它也是一種類型,而這樣做的CREATE TABLE ,但很容易嘗試並改變它的權利? –

+1

順便說一句,我認爲引用它會解決它。 –

回答

0

是的,它似乎是一個保留字。

看看:http://www.sqlite.org/lang_datefunc.html

date(timestring, modifier, modifier, ...) 

很奇怪有一個遊標形成DELETE語句。嘗試在

SELECT * FROM cases WHERE date <= date('now','-1 day') 

拆分操作,然後執行你的支票

SQLiteDatabase db = this.getWritableDatabase(); 
Cursor cursor = db.rawQuery(query, null); 
boolean found = cursor.moveToFirst(); 
if(found) { 
    int result = cursor.getCount(); 
    Log.w("DeleteOldCases: ", "Result: " + Integer.toString(result)); 
    db.close(); 
} 

,然後執行刪除部分

DELETE FROM cases WHERE date <= date('now','-1 day') 
+0

但我可以創建數據庫,並對其執行不同的查詢。所以也許不是? –

+0

你可以嘗試使用[table.field]來識別列嗎? –

+0

也許,我會試試:) –