我是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')
答案 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