0

我试图在一年前的当前日期之间从 sqlite 数据库中获取数据。我使用了以下代码。但它没有提供数据。考虑当前日期是 25-10-2013。有 25-09-2013 的数据。但是里面的代码做,不执行。我不明白代码中有什么问题。同样的方式,我之前使用了 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 回答