2013-10-25 81 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格式。然后你的查询将起作用。

相关问题