如何从android中的数据库中检索上周数据

时间:2017-02-07 07:41:24

标签: android sqlite android-sqlite

我是android的新手。我不太了解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') 

3 个答案:

答案 0 :(得分:0)

我认为您在数据库中设置了错误的日期,否则这将适合您。

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

答案 1 :(得分:0)

这对我有用

SELECT id,ReleaseDateStart
FROM TK1 
WHERE CAST (strftime('%W', ReleaseDateStart) AS Integer)  = CAST (strftime('%W', datetime('now', 'localtime')) AS Integer)

答案 2 :(得分:-1)

尝试将日期格式设为let query$:Observable<any> = this.af.database.list(`quests/`, { query: { orderByChild: 'date_published', limitToFirst: this.recentChunkLimit$ //Subject where I push new limit length } }).publishReplay(1).refCount(); 而不是“yyyy-MM-dd”,并在查询中添加本地时间,如果它仍无效。

YYYY-MM-DD