2013-10-10 73 views
1

我沒有在互聯網上搜索相關信息並實施。但不知怎的,它在我的實施中不起作用。我想刪除超過特定天數的數據。 當我保存數據時,日期格式保存如下。刪除sqlite數據庫中的某些天數以前的數據

SimpleDateFormat df = new SimpleDateFormat("EEE,d MMM yyyy,HH:mm:ss"); 
Date today = (Date) Calendar.getInstance().getTime(); 
String receiveDate = df.format(today); 

我想刪除比天數老年人和實現的數據如下

public boolean delete_oldData(int numofdays){ 
      String deleteQuery = "DELETE FROM " + SQLITE_TABLE + " WHERE " + KEY_TIMEINSTANCE + " <= date('now','-" + numofdays + " day')"; 
      Log.d("Delete Query: ", deleteQuery);    
      myDb.execSQL(deleteQuery);   
      return true; 
    } 

但它不會刪除任何數據。什麼可能是錯的?

+1

您將日期保存爲字符串,您需要將其保存爲long或在查詢中解析日期 – njzk2

+0

與njzk2一致,將長值作爲時間戳管理更容易 – cYrixmorten

+0

我的所有實現都設置爲字符串格式。如果我改變很久,我必須改變很多。我該怎麼辦? – batuman

回答

0

試試下面這段代碼:

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.DAY_OF_MONTH, -numofdays); 
String str = df.format(cal.getTime()); 

替換 「< =日期( '現在', ' - 」 + numofdays + 「日')」 與 「< = '」 + STR + 「'」。

希望這會有所幫助。

+0

謝謝我試過了,它不起作用。現在我在每行的日期比較之後逐行刪除。 – batuman

+0

你可以用<而不是<=來嘗試嗎?另外,使用Android SQLiteDatabase刪除方法會更容易。 – SLee

+0

是的,我測試不起作用。 – batuman