2013-02-12 2 views
0

я хочу, чтобы получить все записи, после сравнения с Parsed_Reminder_Date до и после 3-х дней от текущей даты, в моей Parsed_Reminder_Date базы данных представляет собой столбец, который используется для сохранения даты муравей его Тип данных длинный, вот мой кодGeting записи после сравнения даты

Calendar calendar = Calendar.getInstance(); // This will give you the current time. 
     // Removing the timestamp from current time to point to todays date 
     calendar.set(Calendar.HOUR_OF_DAY, 0); 
     calendar.set(Calendar.MINUTE, 0); 
     calendar.set(Calendar.SECOND, 0); 
     calendar.set(Calendar.MILLISECOND, 0); 

     calendar.add(Calendar.DATE, -3); // Will subtract 3 days from today. 
     Date beforeThreeDays = calendar.getTime(); 

     calendar.add(Calendar.DATE, 6); // Will be your 3 days after today 
     Date afterThreeDays = calendar.getTime(); 

     long threedaybefore=beforeThreeDays.getTime() ; 
     long threedayafter=afterThreeDays.getTime() ; 

     Log.i("beforeThreeDays",Long.toString(threedaybefore)); 
     Log.i("afterThreeDays",Long.toString(threedayafter)); 


     String Reminder_Main = "Reminder_Main",ID = "ID", Reminder_Date = "Reminder_Date", Parsed_Reminder_Date = "Parsed_Reminder_Date"; 
     Cursor remindercursor = sdb 
       .rawQuery(
         "select Reminder_Id,Reminder_Type,Reminder_Time,Reminder_Date,Reminder_Alert,Reminder_Done,Reminder_byodometer,Reminder_bydate from " 
           + Reminder_Main 
           + " where "        
           + ID 
           + " = ? AND " 
           + Parsed_Reminder_Date 
           + " >= ? OR " 
           + Parsed_Reminder_Date 
           + " <= ? ", 
         new String[] {summaryid, Long.toString(threedaybefore), Long.toString(threedayafter)}); 

     remindercursor.moveToFirst(); 

, когда я исполняю это я получаю все записи, которые я не хочу, пожалуйста, поправьте меня были я гонг неправильно

ответ

0

использовать простой запрос, как этот

String query = "select Reminder_Id,Reminder_Type,Reminder_Time,Reminder_Date,Reminder_Alert,Reminder_Done,Reminder_byodometer,Reminder_bydate from " 
          + Reminder_Main 
          + " where "        
          + ID 
          + " = "+ summaryid +" AND " 
          + Parsed_Reminder_Date 
          + " >= "+ threedaybefore +" AND " 
          + Parsed_Reminder_Date 
          + " <= " + threedayafter; 
Cursor remindercursor = sdb.rawQuery(query, null); 

или использовать другой трик

1) написать запрос для извлечения всех данных;

String query = "select Reminder_Id,Reminder_Type,Reminder_Time,Reminder_Date,Reminder_Alert,Reminder_Done,Reminder_byodometer,Reminder_bydate from " 
          + Reminder_Main 
          + " where "        
          + ID 
          + " = "+ summaryid; 
Cursor remindercursor = sdb.rawQuery(query, null); 
Date d = null 
if (cursor.getCount() > 0) { 
     if (cursor.moveToFirst()) { 
      do { 
       d = (<use Date Parser Here as per your dateFormat>cursor.getString(<Index>)); 
       if(d.after(beforeThreeDays) && d.before(afterThreeDays)){ 
         // go Ahead..... 
       } 
      } while (cursor.moveToNext()); 
     } 
    } 
    cursor.close(); 
+0

нет же из пут, я получаю все записи, я не хочу запись в течение 6 дней т.е. до и после 3-х дней с текущей датой – pitambar

+0

Я отредактировал мой ответ смотрите это –

+0

я я постараюсь это, и пусть вас знать – pitambar

Смежные вопросы