0

1年前の現在の日付の間のsqliteデータベースからデータを取得しようとしました。次のコードを使用しました。しかし、それはデータを提供しませんでした。現在の日付が 2013 年 10 月 25 日であるとします。2013 年 9 月 25 日のデータがあります。しかし、内部のコードは実行されません。コードの何が問題なのかわかりません。同様に、私は3か月前と6か月前に使用しましたが、問題なく動作します.

DateFormat format = new SimpleDateFormat("dd-MM-yyyy");
    Calendar cal11 =Calendar.getInstance();
    cal11.add(Calendar.MONTH, -12);
    String  one_year_before = cur_format1111.format(cal11.getTime());
    Log.v("one_year_before", one_year_before);

データを選択するクエリ:

 Cursor cur21 = db.rawQuery("SELECT * FROM " + TIMER_TABLE
                        + " WHERE  cur_date BETWEEN ?  AND ?", new String[] {
                        one_year_before, cur_form_Date });
if (cur21 != null) {
                if (cur21.moveToFirst()) {
                    do {

                        has_valuesyear = true;
                        String reader_name_db_service = cur21.getString(cur21
                                .getColumnIndex("username"));
                        Log.v("reader_name_db_service21",
                                reader_name_db_service);
                        if (reader_name_db
                                .equalsIgnoreCase(reader_name_db_service)) {
                            String tot_reading_time = cur21.getString(cur21
                                    .getColumnIndex("tot_reading"));
                            Log.v("tot_reading_time21", tot_reading_time);
                            String cur_date = cur21.getString(cur21
                                    .getColumnIndex("cur_date"));
                            Log.v("cur_date21", cur_date);
                            one_year_set.add(reader_name_db_service + "~"
                                    + cur_date + "~" + tot_reading_time);

                        }

                    } while (cur21.moveToNext());
                }
            }
            cur21.close();
            db.close();
4

2 に答える 2

1
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

まず、日付をISO 形式の文字として保存する必要があります。その後、クエリが機能します。

于 2013-10-25T16:07:55.810 に答える
-2

多分これを試してみてください

Cursor cursor = db.query(TABLE_NAME, String[] {"column1", "column2"}, "cur_date BETWEEN " + year_before + " AND " + year_after +";",null,null,null,null,null);

あなたの場合、列の文字列配列にはすべての列が含まれます。最後nullの は順序付けと制限用です。

于 2013-10-25T13:54:06.917 に答える