SQL之间的操作在sqlite日期不起作用?

时间:2012-04-09 09:38:18

标签: android android-datepicker android-date

我是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天的值,则它不会显示任何值。

如果有其他替代方案,那会很棒吗?并提示如何去做?

...谢谢

2 个答案:

答案 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.shtmlhttp://www.techonthenet.com/sql/between.php