我決定改變了一下我的表,所以現在這個樣子:
private static final String CREATE_TABLE_SCRIPT = "CREATE TABLE " + TABLE_RESULTS_NAME + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_DATA + " INTEGER," + KEY_COUTER + " INTEGER DEFAULT 0" + ")";
和retriving我SUM(counter)
一段時間的方法是:
// Getting range
public List<Dates> getRange(long dataStart, long dataEnd) {
List<Dates> datesList = new ArrayList<Dates>();
String selectQuery = "SELECT * FROM " + TABLE_RESULTS_NAME;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.query(TABLE_RESULTS_NAME, new String[]{KEY_ID,
KEY_DATA, KEY_COUTER}, KEY_DATA + " BETWEEN ? AND ? ", new String[]{String.valueOf(dataStart),String.valueOf(dataEnd)},null, null, null, null);
// looping through all rows and adding to list
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
Dates dates = new Dates();
dates.set_id(Integer.parseInt(cursor.getString(0)));
dates.set_data(cursor.getLong(1));
dates.set_counter(cursor.getInt(2));
// Adding contact to list
datesList.add(dates);
}
// return dates list
return datesList;
}
並在我的dao類中調用此通用方法:
public int retiveRange() {
List<Dates> dates = dataBase.getRange(data1, data2);
int i = 0;
for (Dates dts : dates) {
i += dts.get_counter();
}
return i;
}
如果以時間戳格式存儲日期,比較日期會更加容易。 – vishalk
sqlite是否允許我們使用數據類型數據? – Choletski
不,它不支持。 – vishalk