Группа по запросу не работает в Android 2.1 - PullRequest
4 голосов
/ 15 сентября 2011

Я сохраняю дату и время в миллисекундах в своей локальной таблице базы данных "сеанс". Моя проблема заключается в том, что этот код работает в Android 2.2 и выше, но любимая версия Android 2.2 не работает, значит, он дает мне все строки из таблицы Ноэто я запускаю тот же код в Android 2.2, он работает отлично и дает мне разные значения

Когда я запускаю запрос ниже в Sqlite Manager, он дает мне правильное отличное значение

Создать синтаксис таблицы

"CREATE TABLE  session  ( " +
        "recid  INTEGER PRIMARY KEY NOT NULL ,  " +
        "starttime  TEXT)";

Запрос на выборку данных из базы данных

Cursor c = mDb.rawQuery("select distinct (starttime / (24 * 60 * 60 * 1000)) ,
starttime from session group by (starttime / (24 * 60 * 60 * 1000))", null);

Значения в сеансе таблицы базы данных ::

1   1319084700198
4   1319084100642
5   1319092500940
6   1319092500769
7   1319100300864
8   1319107500002
9   1319107500673
10  1319168700236
11  1319169000223
12  1319178000717
13  1319178000902
14  1319185800738
15  1319192100137
16  1319256000842
17  1319256000985
18  1319192100156
19  1319084700210
20  1319085000660
21  1319086500972
22  1319088000927
23  1319092500687
24  1319092500027
25  1319092500178
26  1319092500702
27  1319092500878
28  1319092500114

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

Я думаю, что основная проблема для вас заключается в смешении строк и арифметики в SQL.Попробуйте изменить тип базы данных с TEXT на INTEGER.

0 голосов
/ 15 сентября 2011

Если вам по какой-то причине нужно использовать текст, я бы попробовал вычислить значения вне SQL и вместо этого предоставить вычисленные значения. Таким образом, вы можете поймать NumberFormatException и т. П.

distinctTime = Double.parseDouble(starttime) / (24 * 60 * 60 * 1000);
Cursor c = mDb.rawQuery("select distinct " + distinctTime, 
"starttime from session group by " +distinctTime, null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...