如何在Android中的sqlite中获取上一年的当前日期和当前日期之间的值

时间:2013-10-25 13:44:08

标签: android sqlite

我试图在一年前的当前日期之间从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();

2 个答案:

答案 0 :(得分:1)

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

您首先必须将日期存储为 ISO格式中的字符。然后你的查询就可以了。

答案 1 :(得分:-2)

也许试一试

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

在您的情况下,字符串数组将包含您的所有列。最后null用于排序和限制。