2012-01-27 2 views
0

У меня есть приложение, которое извлекает информацию по дате, но я хочу получить ее, когда пользователь вытащит ее за день, показывая последние шесть дней. до сих пор у меня есть.Android SQLite получает текущую дату плюс последние шесть дней?

public double fetchInformation(){ 
     Date d = new Date(); 
     SimpleDateFormat date= new SimpleDateFormat("yyyy-MM-dd"); 
     String day = String.valueOf(date.format(d)); 
     Cursor c = ourdb.rawQuery("SELECT*FROM " + WW_TABLE+" WHERE "+ 
     KEY_DATE+" LIKE ?", new String[]{day}); 
     if(c.moveToFirst()){ 
      return c.getDouble(0); 
     } 
      return c.getDouble(0); 
    } 

Как я могу получить это, чтобы дать мне последние шесть дней с текущей даты?

ответ

1

Возможно, вам понадобится сделать что-то подобное.

Date d = new Date(); 

    Calendar last6Day= new GregorianCalendar() {{ 
      add(Calendar.DAY_OF_YEAR, -6); 
      set(Calendar.HOUR_OF_DAY, 0); 
      set(Calendar.MINUTE, 0); 
      set(Calendar.SECOND, 0); 
      set(Calendar.MILLISECOND, 0); 
     }}; 

    Date dt6 = last6Day.getTime(); 

    ourdb.rawQuery("SELECT*FROM tableName where date between dt6 AND dt"); 

Примечание: могут быть ошибки синтаксиса. Я не вводил это в IDE.

+0

Вызвать: android.database.sqlite.SQLiteException: рядом с "Jan": синтаксическая ошибка: при компиляции: SELECT SUM (время) FROM wwlltdTable WHERE Дата МЕСЯЦА Сб 21 янв 00:00:00 MST 2012 И 2012-01 -27 это имеет значение, если я использую 'between' или' BETWEEN'? могу ли я получить i так, чтобы dt6 отображался в формате 'yyyy-mm-dd'? – Christian

+0

Между случаем не проблема, используйте simpledateformat, чтобы попасть в формате yyyy-mm-dd. – kosa

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