日期之间的比较

时间:2012-08-04 07:53:42

标签: android database date

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

这是我的样本表:

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意味着我必须得到数据。 提前谢谢..

1 个答案:

答案 0 :(得分:0)

不考虑SQL注入攻击漏洞(使用参数化查询而不是直接在SQL中插入值),您应该以可排序的格式存储日期,例如: yyyy-MM-dd。此时,词典排序也会为您提供正确的时间顺序,因此您的比较将起作用。

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