我是Android开发的新手。我一直在研究这一天,我无法弄清楚确切的问题是什么,因为我的查询运行没有错误但没有结果。
我的数据库查询 formattedDate的值
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = df.format(c.getTime());
public Cursor paymentWeek(Activity activity)
{
String[] from = { _PAYMENTID, NAME, REQUESTEDDATE, FROMAD, TOADD, EMAILBODYPAYMENT, AMOUNT};
SQLiteDatabase db = getReadableDatabase();
String orderby = REQUESTEDDATE+" DESC";
Cursor cursor = db.rawQuery("SELECT * FROM " + PAYMENTTABLE+ " WHERE " + REQUESTEDDATE + " BETWEEN date('"+formattedDate+"') AND date('"+formattedDate+"','-7 days')", null);
activity.startManagingCursor(cursor);
return cursor;
}
我的数据库日期类型为TEXT
。我以(yyyy-mm-dd
)的格式存储,例如:2012-04-07
但问题是我可以从数据库中检索所有数据但如果我想检索最近7天的值,则它不会显示任何值。
如果有其他替代方案,那会很棒吗?并提示如何去做?
...谢谢
答案 0 :(得分:1)
Cursor cursor = db.rawQuery("SELECT * FROM " + PAYMENTTABLE+ " WHERE " + REQUESTEDDATE + " BETWEEN date('"+formattedDate+"') AND date('"+formattedDate+"-7')", null);
尝试此查询,您在date('"+formattedDate+"','-7 days')"
中犯了一个错误。
答案 1 :(得分:-1)
正如您所说,date
类型为TEXT
,我认为您不能使用between x and y
让过滤器从x to y
返回内容。
您可以尝试:http://www.roseindia.net/sql/sql-between-date.shtml或http://www.techonthenet.com/sql/between.php。