我使用以下查询从sqlite数据库中获取数据:
SELECT * FROM CASHIER Where Type = 1 And DATE Between '2014/03/31' And '2014/04/06';
它在SQLite管理员中显示准确的结果但是当我在android C.moveToFirst
中使用它时总是返回false
。
请有人告诉我为什么会这样吗?
以下是我的方法:
public List<Income> getWeeklyIncomeRecords(String in_startWeek, String on_endWeek)
{
List<Globals.Income> income = new ArrayList<Globals.Income>();
String selectQuery = "SELECT * FROM " + TABLE_NAME1+" Where Type = 1" + " And DATE Between " +"'"+in_startWeek+"'"+ " And " +"'"+on_endWeek+"'";
//Log.e(TAG, selectQuery);
SQLiteDatabase db = mDbHelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
Globals globals = new Globals();
Income td = globals.new Income();
td.setIn_amount(c.getInt((c.getColumnIndex(AMOUNT))));
td.setIn_catagory(c.getString(c.getColumnIndex(CATEGORY)));
td.setIn_date((c.getString(c.getColumnIndex(DATE))));
td.setIn_name(c.getString(c.getColumnIndex(NAME)));
td.setIn_imagename(c.getString(c.getColumnIndex(IMAGENAME)));
income.add(td);
} while (c.moveToNext());
}
return income;
}
答案 0 :(得分:0)
日期类型使用格式YYYY-MM-DD,因此查询必须为:
SELECT * FROM CASHIER Where Type = 1 And DATE Between '2014-03-31' And '2014-04-06';
答案 1 :(得分:-2)
替换
SQLiteDatabase db = mDbHelper.getReadableDatabase();
通过
SQLiteDatabase db = this.getWritableDatabase();