【问题标题】:SQL Between operation in android sqlite date is not working?android sqlite日期中的SQL之间的操作不起作用?
【发布时间】:2012-04-09 09:38:17
【问题描述】:

我是安卓开发新手。我已经为此工作了一天,但我无法弄清楚确切的问题是什么,因为我的查询运行时没有错误但没有结果。

我的数据库查询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 天的值,它不会显示任何值。

如果有任何替代方案会很棒吗?并提示如何去做?

谢谢...

【问题讨论】:

    标签: android android-datepicker android-date


    【解决方案1】:
       Cursor cursor = db.rawQuery("SELECT * FROM " + PAYMENTTABLE+ " WHERE " + REQUESTEDDATE + " BETWEEN date('"+formattedDate+"') AND date('"+formattedDate+"-7')", null);
    

    试试这个查询,你在date('"+formattedDate+"','-7 days')"中犯了一个错误。

    【讨论】:

    • 感谢您的评论...我解决了这个问题。问题出在操作员之间,我尝试了
    【解决方案2】:

    正如您所说,您的date 类型是TEXT,我认为您不能使用between x and y 使过滤器返回来自x to y 的内容。

    你可以试试这个:http://www.roseindia.net/sql/sql-between-date.shtmlhttp://www.techonthenet.com/sql/between.php

    【讨论】:

    • 感谢您的回答..在看到您的评论之前我已经解决了问题..但是您的回答是正确的..我们不能在操作员之间使用..感谢您的回答...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多