2012-01-27 14 views
0

私は日付までに情報を引き出すアプリケーションを持っていますが、最後の6日間を表示する日までにユーザーがプルアップしたときに取得したいと考えています。これまでのところ私は持っています。AndroidのSQLiteに現在の日付と過去6日間の日付が表示されますか?

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); 
    } 

どのように私は現在の日付から最後の6日間を与えることができますか?

答えて

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:near "Jan":コンパイルエラー:コンパイル中SELECT SUM(Time)FROM wwlltdTable WHERE日付BETWEEN Sat Jan 21 00:00:00 MST 2012 AND 2012-01 -27「between」または「BETWEEN」を使用すると違いがありますか? dt6が 'yyyy-mm-dd'形式で表示されるようにすることはできますか? – Christian

+0

ケース間で問題はありません.yyyy-mm-dd形式で取得するにはsimpledateformatを使用してください。 – kosa

関連する問題