0

在我的应用程序中,我必须从位于某些日期之间的数据库中检索日期。在我的数据库中,我将日期存储为字符串。我还编写了查询。

这是我的示例表:

id    item  price  startdate    enddate
1     ass    78    04/08/2012   14/09/2012
2     err    89    04/08/2012   10/09/2012.
3     dffg   44    04/08/2012   18/08/2012 

我的查询是:

public Cursor getIncometitle(String grpsdb,String date) throws SQLException
{   
    Cursor mCursor = db.rawQuery(
             "SELECT * FROM incomexpense WHERE date like '"+date+"' OR enddate > date  AND category='Income' AND groups='"+grpsdb +"'   ORDER BY date DESC" , null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}

在上述情况下,我正在检查enddate>date。在这即将发生的事情中,我认为它比较日期(04 and 14) and(04and 10),它更大,所以所有数据都来了。但我不需要那个,如果enddate month is greater that startdate意味着我必须获取数据。提前致谢..

4

1 回答 1

0

抛开 SQL 注入攻击漏洞(使用参数化查询而不是将值直接插入 SQL),您应该以可排序的格式存储日期,例如yyyy-MM-dd. 那时,字典顺序也会给你正确的时间顺序,所以你的比较会起作用。

如果可以的话,如果您可以将日期作为日期存储在数据库中实际上会更好 - 这取决于您的数据库是否支持。

于 2012-08-04T08:01:38.887 回答