2013-10-25 117 views
0

我試圖從一年前的當前日期之間獲取來自sqlite數據庫的數據。我使用了下面的代碼。但它沒有提供數據。考慮當前日期是25-10-2013。有數據爲25-09-2013。但是裏面的代碼不會執行。我沒有得到代碼中的錯誤。同樣的方式,我用了3個月前和6個月前,他們工作得很好。如何在Android中的sqlite中獲取當前日期和上一年當前日期之間的值

DateFormat format = new SimpleDateFormat("dd-MM-yyyy"); 
    Calendar cal11 =Calendar.getInstance(); 
    cal11.add(Calendar.MONTH, -12); 
    String one_year_before = cur_format1111.format(cal11.getTime()); 
    Log.v("one_year_before", one_year_before); 

查詢來選擇數據:

Cursor cur21 = db.rawQuery("SELECT * FROM " + TIMER_TABLE 
         + " WHERE cur_date BETWEEN ? AND ?", new String[] { 
         one_year_before, cur_form_Date }); 
if (cur21 != null) { 
       if (cur21.moveToFirst()) { 
        do { 

         has_valuesyear = true; 
         String reader_name_db_service = cur21.getString(cur21 
           .getColumnIndex("username")); 
         Log.v("reader_name_db_service21", 
           reader_name_db_service); 
         if (reader_name_db 
           .equalsIgnoreCase(reader_name_db_service)) { 
          String tot_reading_time = cur21.getString(cur21 
            .getColumnIndex("tot_reading")); 
          Log.v("tot_reading_time21", tot_reading_time); 
          String cur_date = cur21.getString(cur21 
            .getColumnIndex("cur_date")); 
          Log.v("cur_date21", cur_date); 
          one_year_set.add(reader_name_db_service + "~" 
            + cur_date + "~" + tot_reading_time); 

         } 

        } while (cur21.moveToNext()); 
       } 
      } 
      cur21.close(); 
      db.close(); 
+0

什麼是'format1111'? –

+0

這是dd-MM-yyyy – Manikandan

回答

-2

也許給這個一杆

Cursor cursor = db.query(TABLE_NAME, String[] {"column1", "column2"}, "cur_date BETWEEN " + year_before + " AND " + year_after +";",null,null,null,null,null); 

列的字符串數組,你的情況,將包含所有列。最後的null是爲了排序和限制。

+0

-1:不回答問題,也忽略使用參數的好習慣! –

1
DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 

你會首先必須將日期存儲爲字符ISO格式。然後你的查詢將起作用。

相關問題