2017-02-07 2 views
0

私はアンドロイドの新機能です。私はsqliteデータベースと日付についてはあまり知らない。私はちょうどデータベースから先週のデータを取得したい。私はいくつかの資料に従うことで、以下のコードを試しました。私は取得していない、私は日付のデータ型として日付を宣言する必要があります、私はクエリでdate()メソッドを使用する場合。誰かが私に非常に役立つ説明といくつかのコードで私を助ける場合。 私は次のようにしてテーブルを作成しています:先週のデータをアンドロイドのデータベースから取り出す方法

ここ
String query = "CREATE TABLE " + TABLE_NAME + 
     "(" + ID 
      + " integer primary key autoincrement, " 
      + AMOUNT + " real, " 
      + PAYER_NAME + " text, " 
      + NOTE + " text, " 
      + DATE + " text " + ")"; 

私が挿入していたデータ

public void addInformation(DataProvider provider) { 

    SQLiteDatabase db = getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put(ID, provider.getId()); 
    values.put(AMOUNT, provider.getMoney()); 
    values.put(PAYER_NAME, provider.getName()); 
    values.put(NOTE, provider.getDesc()); 
    values.put(DATE,provider.getDate()); 
    db.insert(TABLE_NAME, null, values); 
    db.close(); 
    } 

そして、次のクエリで私は自分のデータを取得しようとしている

SELECT * FROM income_table WHERE date BETWEEN date('now', '-6 days') AND date('now') 

答えて

-1

"yyyy-MM-dd"ではなく、日付形式をYYYY-MM-DDとし、それでも問題が解決しない場合は、ローカル時間をクエリに追加してください。

SELECT * FROM income_table WHERE date BETWEEN datetime('now', '-6 days') AND datetime('now', 'localtime'); 
+0

'DD'は' day of year'すなわち1〜365を返します。 –

+0

その動作していません – Rahid

+0

@Rahidどのようなクエリから返されますか? –

0

あなたのデータベースに間違った日付が設定されていると思いますが、これはうまくいくでしょう。

Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT * FROM income_table WHERE date BETWEEN datetime('now', '-6 days') AND datetime('now', 'localtime')"); 
関連する問題