2012-03-10 39 views
5

Tôi có bảng chứa dữ liệu cùng với ngày được tạo. Tôi muốn chọn dữ liệu từ bảng theo hai phạm vi ngày nhất định hoặc trong một tháng cụ thể.Cách chọn dữ liệu giữa hai phạm vi ngày trong android SQLite

Tôi không chắc chắn làm thế nào để làm điều đó, như tạo ra trên cột là loại văn bản và được lưu giữ như dd-MM-yyyy HH: mm: ss

Tôi đang sử dụng rawQuery() để lấy dữ liệu.

Trả lời

11

Bạn có thể làm một cái gì đó như thế này:

mDb.query(MY_TABLE, null, DATE_COL + " BETWEEN ? AND ?", new String[] { 
       minDate + " 00:00:00", maxDate + " 23:59:59" }, null, null, null, null); 

minDatemaxDate, đó là chuỗi ngày, tạo nên phạm vi của bạn. Truy vấn này sẽ nhận tất cả các hàng từ MY_TABLE nằm trong khoảng này.

+0

thân bạn có thể cho tôi ở định dạng truy vấn sql? – kaibuki

+2

'mDb.rawQuery (" chọn * từ "+ MY_TABLE +" trong đó "+ DATE_COL +" GIỮA "+ minDate +" 00:00:00 VÀ "+ maxDate +" 23:59:59 ");' –

+0

Tôi có từ ngày 11 tháng 3 đến ngày 14 tháng 3, nhưng khi tôi đang sử dụng truy vấn, "chọn * từ danh mục nơi được tạo ra GIỮA '11 -03-2012 00:00:00 'VÀ '12 -05-2012 23:59:59'", nó sẽ hiển thị cho tôi dữ liệu của tất cả các ngày, vì tháng của tôi được đặt là tháng, nhưng chỉ hiển thị cho tôi dữ liệu thứ 11 và 12 tháng 3: ( – kaibuki

0

Dưới đây là một số hữu ích

//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; 
} 
Các vấn đề liên quan