Почему мой Курсор пуст после этого запроса к базе данных SQLite? - PullRequest
0 голосов
/ 23 июля 2011

startTime и endTime являются строками в формате «2011-07-22 13:00:00». Следующий код заставляет myCursor.moveToFirst () возвращать false.

String sqlQuery = "SELECT * FROM myData WHERE 
    strftime('%Y-%m-%d %H:%M:%S', datetime) >= strftime('%Y-%m-%d %H:%M:%S', '"+startTime+"') 
    AND strftime('%Y-%m-%d %H:%M:%S', datetime) <= strftime('%Y-%m-%d %H:%M:%S', '"+endTime+"')";
Cursor myCursor = myDataBase.rawQuery(sqlQuery, null);

Однако, когда я захожу в оболочку sqlite3 и набираю

SELECT * FROM myData WHERE 
    strftime('%Y-%m-%d %H:%M:%S', datetime) >= strftime('%Y-%m-%d %H:%M:%S', '2011-07-22 13:00:00') 
    AND strftime('%Y-%m-%d %H:%M:%S', datetime) <= strftime('%Y-%m-%d %H:%M:%S', '2011-07-22 13:02:00');

распечатывает то, что мне нужно. Что с этим?

1 Ответ

0 голосов
/ 23 июля 2011

Разве вы не пропустили свой moveToFirst() звонок?

String sqlQuery = "SELECT * FROM myData WHERE 
    strftime('%Y-%m-%d %H:%M:%S', datetime) >= strftime('%Y-%m-%d %H:%M:%S', '"+startTime+"') 
    AND strftime('%Y-%m-%d %H:%M:%S', datetime) <= strftime('%Y-%m-%d %H:%M:%S', '"+endTime+"')";
Cursor myCursor = myDataBase.rawQuery(sqlQuery, null);
myCursor.moveToFirst();  // 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...