我有两个查询,一个是?
我通过选择参数替换的,另一个是整个查询已准备为字符串。查询?
似乎没有返回任何结果,也没有任何错误。
String query1 = "strftime('"
+ Constants.SQLITE_DATABAE_STRFORMAT
+ "', "+ COLUMN_NAME_DATE_CREATED +") BETWEEN strftime('"
+ Constants.SQLITE_DATABAE_STRFORMAT + "', '"+ sdf.format(fromDate) +"') AND strftime('"
+ Constants.SQLITE_DATABAE_STRFORMAT + "', '"+ sdf.format(toDate)+"')";
上面的查询按预期返回结果。
String query2 = "strftime('"
+ Constants.SQLITE_DATABASE_STRFORMAT
+ "', "+ "?" +") BETWEEN strftime('"
+ Constants.SQLITE_DATABASE_STRFORMAT + "', "+ "?" +") AND strftime('"
+ Constants.SQLITE_DATABASE_STRFORMAT + "', "+ "?"+")";
String[] selectionArgs = new String[] {
COLUMN_NAME_DATE_CREATED,
sdf.format(fromDate), sdf.format(toDate) };
上面的查询 2 不返回任何结果。cursor
创建如下所示,不同之处在于查询 1设置selectionArgs
为空数组。
Cursor cursor = queryBuilder.query(database.getReadableDatabase(),
projection, selection, selectionArgs, null, null, sortOrder);