我正面临一个查询中的问题。其中我根据日期从数据库中检索数据,如果今天的日期是2016年9月17日我想要在此日期保存的所有数据问题是当我回溯它只显示一个数据,我的数据库中有很多数据我无法摆脱这个问题。 我知道这是一个愚蠢的问题,但我在2至3天内陷入困境。
sqLiteDatabase.rawQuery("SELECT * from mytable where Date = (select max(Date) from mytable WHERE Date < DATE('now') );", null);
Cursor c = sqLiteDatabase.rawQuery("SELECT * from BluetoothDevice WHERE Date = date('now');", null);
while (c.moveToNext()) {
Date date = new Date();
date.setTime(Long.valueOf(c.getString(c.getColumnIndex("Date"))));
result.add(
new BluetoothDevice(
c.getString(c.getColumnIndex("Device")),
c.getString(c.getColumnIndex("Address")),
date
)
);
}
c.close();
return result;
}
答案 0 :(得分:0)
该查询永远不会检索TODAY的数据。 date('now')
现在永远都是Sep 16, 2016
。然后,您在当天查询任何内容(<
),因此您只能获得记录Sep 15, 2016
及更早版本。然后取出那些早期日期的MAX,它们永远不会高于Sep 15
(因为那是你的where
所指定的)并对其使用相等测试。
如此有效,对于9月16日的查询,您正在运行where date = 'Sep 15'
为什么你能拥有
SELECT ... WHERE date = date('now')