2017-02-07 9 views
0

Я новичок в android. Я не знаю больше о базе данных sqlite и дате. Я просто хочу получить данные прошлой недели из базы данных. Я попытался под кодом, следуя некоторым материалам. Я не получаю, должен ли я объявлять дату как тип данных даты, если я использую метод date() в запросе. Если кто-то поможет мне по коду с объяснением, которое будет очень полезно для меня. Я создаю таблицу следующим образом:Как получить данные прошлой недели из базы данных в android

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' возвращает« день года », то есть 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')");