2013-05-08 3 views
0

У меня есть запрос sql, который не возвращает никакого значения, но у него есть данные для возврата. Следующий запрос кодаЗапрос Sqlite не возвращает значение Android

Cursor cursor = db.query(CrimeDB.NOME_TABELA, CrimeDB.COLUNAS, 
      CrimeDB.ID_CIDADE + "=" + idCidade + "" + " AND " 
        + CrimeDB.TIME + " >= datetime('" + dataInicioFormatada 
        + "') AND " + CrimeDB.TIME + " <= datetime('" 
        + dataFimFormatada + "')" + " AND " 
        + CrimeDB.GRUPO_CRIME + "=" + idCategoria + "", null, 
      null, null, null); 

Читать курсор

if (cursor.moveToFirst()) { 

     do { 
      crime = new Crime(); 
      crime.setLastUpadateToken(ultimoTokenValido 
        .getUltimoTokenAtualizado()); 

      listCrime.add(itemCrime); 

     } while (cursor.moveToNext()); 

    } 

Результат запроса:

SELECT  
     grupo_crime_id_grupo_crime, 
    id_crime, 
    cities_id_cities, 
    time 
FROM 
    crime 
WHERE 
    cities_id_cities=1650 AND 
    time >= datetime('20-10-2012') AND 
    time <= datetime('22-05-2014') AND 
    grupo_crime_id_grupo_crime=1 

был возвращается, чтобы понять, какое-либо значение, потому что это значение в базе данных. Используя редактор SQLite, я вижу какой-либо регистр в таблице.

id_crime | cities_id_cities | grupo_crime_id_grupo_crime | time 
1   1650    1       28-03-2013 
2   1650    1       06-04-2013 
+0

- ваше целочисленное значение 'idCidade '? –

+0

Да, я знаю. idCidade - целочисленное значение. –

ответ

1

Измените формат даты на yyyy/MM/dd и попробуйте использовать between вместо того, чтобы сравнивать даты с >= и <=.

0

использование апостроф (') при проверке в пункте, где

Cursor cursor = db.query(CrimeDB.NOME_TABELA, CrimeDB.COLUNAS, 
      CrimeDB.ID_CIDADE + "='" + idCidade + "'" + " AND " 
        + CrimeDB.TIME + " >= datetime('" + dataInicioFormatada 
        + "') AND " + CrimeDB.TIME + " <= datetime('" 
        + dataFimFormatada + "')" + " AND " 
        + CrimeDB.GRUPO_CRIME + "='" + idCategoria + "'", null, 
      null, null, null); 
+0

протестирован таким образом, и это не имело значения :( –

0

Правильный формат даты, как в базе данных и в ваших параметров запроса, должны быть yyyy-mm-dd.

+0

Слово, большое спасибо!: D –

Смежные вопросы