Cursor cursor = db.rawQuery("SELECT * FROM expenses WHERE expense_date > (SELECT DATE('now', '-7 day'));", null);
我有上面的查询来获取过去7天插入的所有记录。但是由于这个查询,我得到了所有的记录。这些记录的日期列通过Android的DatePicker
插入,并且格式为 2015年7月30日。我猜这就是为什么这个查询无法正常工作的原因。有没有办法让它们保持一致,以使这个查询正常工作或我错过了其他的东西?任何帮助将不胜感激。
答案 0 :(得分:1)
我从未尝试过使用SQLite内置的日期函数。快速查看SQLite日期函数文档here,似乎要使用它们日期需要采用YYYY-MM-DD格式,这就是查询失败的原因。
在保存到数据库并使用该格式之前,您可以执行一些字符串操作/格式化。
就个人而言,我通常以这种方式进行格式化但没有破折号分隔符,则可以使用简单的小于/大于比较,将日期视为常规数字。当然,一些转换来回显示是必要的,但是在引擎盖下它可以很好地工作。
int now = 20150730;
String query = "SELECT * FROM expenses WHERE expense_date > '" + now-7 + "'";