空(不为空!)我想这样创建 sql 语句:
SELECT * FROM table WHERE date BETWEEN ? AND ? ORDER BY date ASC LIMIT 1
我在数据库中有一个 sql ^
Cursor cursor = context.getContentResolver().query(
URI,
new String[] { col_id, col_2,DATE },
DATE + " BETWEEN ? AND ?" ,
new String[] {dateAsString, stopDate)} ,
DATE + " ASC LIMIT 1");
cursor = database.query(
table, projection,
selection, selectionArgs,
null, null, sortOrder);
Sql 是通过 cursor 传递的,是 null。我将数据库复制到 sd 卡并通过SQLiteManager
插件查看它到 FF -0 所有数据都存在并且上面的语句在控制台中工作,所以我的 sql 语句出现了一些问题。
你能告诉我这是错的吗?
更新扩展问题
我存储了一些数据,其中的日期列保存为:
- 2012-11-30 09:12:29.392 哪个模式 yyyy-MM-dd HH:mm:sS
- 将其转换为 long 并将其保存为我表中的 TEXT 类型的列
- 所以我得到了类似的东西 1354197364633
我想在两个值之间获取数据库中哪个日期的行:
database.rawQuery("SELECT * FROM Track WHERE Date BETWEEN ? AND ?", selectionArgs);
但我没有成功。现在我知道这不适用于任何数据库,但没有解决方案。你能建议我如何解决我的问题吗?
我尝试使用下面的解决方案。所以在光标中我得到这个查询:
SQLiteQuery: SELECT * FROM Track WHERE Date BETWEEN CAST(? AS INT) AND CAST(? AS INT)
在 mBindArgs 中使用此参数:
{1=1354248261841, 2=1354262663195}
我检查轨道中的日期值,它位于它们之间,但光标仍然返回空。