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 に答える