从sqlite数据库中选择日期范围

时间:2012-03-20 05:37:51

标签: android database sqlite

我正在尝试根据更新时间选择一些帐户..

我的表名为帐户,其列有createdOn , updatedOn, acountName等。

现在日期存储为字符串2012-03-20

如何根据日期进行SQL查询以选择差异帐户。

这是我的代码

 public ArrayList<Account> getAllAccountsForReports(Date dateTo, Date dateFrom)
  {
      ArrayList<Account> accounts = new ArrayList<Account>();
      String queryString = "SELECT * FROM MAAccounts WHERE updatedOn = ? BETWEEN updatedOn = ? ORDER BY accountType, accountName";
      Cursor result =  mDb.rawQuery(queryString, new String[]{ dateToDB(dateTo), dateToDB(dateFrom)}); 

请告诉我如何更正我的SQL查询。

最好的问候

1 个答案:

答案 0 :(得分:1)

您的BETWEEN语法已关闭,您可能想要的是什么;

SELECT * FROM MAAccounts 
WHERE updatedOn 
  BETWEEN ? AND ?
ORDER BY accountType, accountName

由于您通过'yyyy-MM-dd'进行存储,因此使用字符串应该可以正常工作。

我不确定要使用哪个表名,因为你说它在问题中被称为account而在代码中被称为MAAccounts并且列中的列拼写错误,所以当然您需要根据实际的列名进行调整。