使用游标“之间”查询sqlite数据库

时间:2018-12-21 02:37:59

标签: android-studio cursor android-sqlite

我这里有两个数据集,分别是“ time-in”和“ time-out”,我想使用“ between”查询这两个数据集,以便对数据ive进行过滤我的“超时”到我的“超时” ...

这是我的查询数据(获取所有数据)。

public Cursor retrieveHistoryLocationFromLocalDatabase(SQLiteDatabase db)
{
    String[] columnNames =
            {
                    HISTORY_SERIAL_NUMBER,
                    HISTORY_LATITUDE,
                    HISTORY_LONGITUDE,
                    HISTORY_DATE_TIME,
                    HISTORY_SPEED,
                    HISTORY_PORT
            };



            return (db.query(TABLE_HISTORY_FLEET_LOCATION, columnNames,null, 
            null,null, null, null));
           }

1 个答案:

答案 0 :(得分:0)

使用rawQuery()方法准备选择语句。

   
public Cursor retrieveHistoryLocationFromLocalDatabase(SQLiteDatabase db, String timeIn, String {

    String sql = "SELECT HISTORY_SERIAL_NUMBER, HISTORY_LATITUDE,"
                    + " HISTORY_LONGITUDE, HISTORY_DATE_TIME, HISTORY_SPEED, HISTORY_PORT"
                    + " FROM your_table_name"
                    + " WHERE your_time_in_out_column BETWEEN '" + timeIn + "' AND '" + timeOut + "'";

    return (db.rawQuery(sql, null));
}

您必须用实际的表名更改your_table_name,用实际的列名更改your_time_in_out_column,并用实际值更改timeIntimeOut变量类型。

在调用retrieveHistoryLocationFromLocalDatabase()方法时,您需要传递3个参数SQLite数据库对象,超时和超时。

PS:不建议使用rawQuery()方法,因为它使用原始SQL语句作为参数。这构成了SQL注入威胁。