は、限り、あなたは、Androidについて尋ねると、私はあなたが使用するデータベースはSQLiteのであることを前提としています。 SQLiteにはdateのデータ型がありません。したがって、あなたはいくつかのオプションがあります:日付を文字列で保存するか(あなたのように)、日付のタイムスタンプを保存します。
2番目のオプションを使用することをお勧めします。これは、日付を整数に変換するので、処理がさらに簡単になります。
は、このようにあなたが行うことができ、最後の31日間でイベントのみを選択したい場合:ここで私は、角括弧内のすべての値を書き込む
SQLiteDatabase database = helper.getWriteableDatabase();
final long millisIn31Days = 31 * 24 * 60 * 60 * 1000;
String where = "<your-date-column> >= ?"
String [] whereArgs = { String.valueOf(new Date().getTime() - millisIn31Days) };
Cursor cursor =
database.query("<TABLE_NAME>", null, where, whereArgs, null, null, null);
注意はあなたが実際に正しい定数で埋める必要があります。
しかし、文字列の解決策に固執したい場合は、日付形式を正しい方法で指定する限り、文字列の比較を行うことができます。文字列ソリューションでは、31日前の日付を計算する必要があります。あなたはそれを達成するためにCalendar
のクラス補助メソッドを使うことができます。データベースエンジンを仮定
作成する方法の下で? –
ありがとうございました!私は、入力された日付とコードが出力される日付の長い値を取得し、その後コードを比較する単純なブール減算を行う代わりに、コードを修正しました! –