5
我有一個表,其中包含數據以及創建日期。我想根據兩個給定日期範圍或一個特定月份從表中選擇數據。如何在android中的兩個日期範圍內選擇數據SQLite
我不知道該怎麼做,作爲列上創建的文本類型,並存儲爲DD-MM-YYYY HH:MM:SS
我使用rawQuery()來獲取數據。
我有一個表,其中包含數據以及創建日期。我想根據兩個給定日期範圍或一個特定月份從表中選擇數據。如何在android中的兩個日期範圍內選擇數據SQLite
我不知道該怎麼做,作爲列上創建的文本類型,並存儲爲DD-MM-YYYY HH:MM:SS
我使用rawQuery()來獲取數據。
你可以做這樣的事情:
mDb.query(MY_TABLE, null, DATE_COL + " BETWEEN ? AND ?", new String[] {
minDate + " 00:00:00", maxDate + " 23:59:59" }, null, null, null, null);
minDate
和maxDate
,這是日期字符串,讓你的範圍。該查詢將獲得落在此範圍之間的所有來自MY_TABLE
的行。
下面是一些有用的
//Get Trips Between dates
public List<ModelGps> gelAllTripsBetweenGivenDates(String dateOne, String dateTwo) {
List<ModelGps> gpses = new ArrayList<>();
SQLiteDatabase database = dbHelper.getReadableDatabase();
final String columNames[] = {DBHelper.COLUMN_ID, DBHelper.COLUMN_NAME, DBHelper.COLUMN_LATITUTE, DBHelper.COLUMN_LONGITUDE, DBHelper.COLUMN_ALTITUDE, DBHelper.COLUMN_DATE, DBHelper.COLUMN_TYPE, DBHelper.COLUMN_TRAVEL, DBHelper.COLUMN_SPEED};
String whereClause = DBHelper.COLUMN_TYPE + " = ? AND " + DBHelper.COLUMN_DATE + " BETWEEN " + dateOne + " AND " + dateTwo;
String[] whereArgs = {"Trip"};
Cursor cursor = database.query(DBHelper.TABLE_NAME_GPS, columNames, whereClause, whereArgs, null, null, DBHelper.COLUMN_NAME + " ASC");
while (cursor.moveToNext()) {
ModelGps gps = new ModelGps();
gps.setId(cursor.getLong(cursor.getColumnIndex(DBHelper.COLUMN_ID)));
gps.setName(cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_NAME)));
gps.setLatitude(cursor.getDouble(cursor.getColumnIndex(DBHelper.COLUMN_LATITUTE)));
gps.setLongitude(cursor.getDouble(cursor.getColumnIndex(DBHelper.COLUMN_LONGITUDE)));
gps.setAltitude(cursor.getDouble(cursor.getColumnIndex(DBHelper.COLUMN_ALTITUDE)));
gps.setDate(cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_DATE)));
gps.setType(cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_TYPE)));
gps.setTravel(cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_TRAVEL)));
gps.setSpeed(cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_SPEED)));
gpses.add(gps);
}
database.close();
cursor.close();
return gpses;
}
哥們,你可以給我在SQL查詢格式? – kaibuki 2012-03-10 21:38:56
'mDb.rawQuery(「select * from」+ MY_TABLE +「where」+ DATE_COL +「BETWEEN」+ minDate +「00:00:00 AND」+ maxDate +「23:59:59」);' – 2012-03-10 21:46:11
我有日期從3月11日到3月14日,但是當我使用查詢時,「select * from BETWEEN '11 -03-2012 00:00:00'AND '12 -05-2012 23:59:59''它應該顯示所有日期的數據,因爲我的月份設置爲5月,但它只顯示我11月和12月3日的數據:( – kaibuki 2012-03-10 22:00:31