2012-03-10 4 views
5

У меня есть таблица, которая содержит данные вместе с созданной по дате. Я хочу выбрать данные из таблицы в соответствии с двумя заданными диапазонами дат или одним конкретным месяцем.Как выбрать данные между двумя диапазонами дат в android SQLite

Я не уверен, как это сделать, так как создается на столбце типа текста и хранится в виде ДД-ММ-ГГГГ ЧЧ: мм: сс

Я использую rawQuery() для извлечения данных.

ответ

11

Вы можете сделать что-то вроде этого:

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, которые попадают между этим диапазоном.

+0

дружище вы можете дать мне в SQL формат запроса? – kaibuki

+2

'mDb.rawQuery (" select * from "+ MY_TABLE +" где "+ DATE_COL +" BETWEEN "+ minDate +" 00:00:00 AND "+ maxDate +" 23:59:59 ");' –

+0

У меня есть дата с 11 марта по 14 марта, но когда я использую запрос, «выберите * из категории, где createdon BETWEEN '11 -03-2012 00:00:00 'AND '12 -05-2012 23:59:59'", он должен показывать мне данные всех дат, так как мой месяц настроен на май, но только он показывает мне данные 11 и 12 марта :( – kaibuki

0

Вот некоторые полезным

//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; 
} 
Смежные вопросы