выборка данных с условием из SQLite

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
plesser
Сообщения: 25
Зарегистрирован: 10 ноя 2013, 14:05
Откуда: Жуковский

выборка данных с условием из SQLite

Сообщение plesser » 27 июл 2016, 21:39

Собственно проблема, есть таблица bought с записями в поле bo_date где хранится время когда была сделана запись

Мне нужно получиться все значения, которые были сделаны более чем 20 минут тому назад

Делаю выборку двумя способами:

Код: Выделить всё

            
Cursor c = mDatabase.query("bought", null, "bo_date < ?", new String[] {"datetime('now', '-20 minutes')"}, null, null, null);
на выходе я получаю все записи, в том числе где значение поля bo_date большее чем datetime('now', '-20 minutes')

в тоже время

Код: Выделить всё

  
Cursor   c = mDatabase.rawQuery("select * from bought where bo_date < datetime('now', '-20 minutes')", new String[] {});
уже возвращает правильные записи, те которые я жду

при этом конструкция

Код: Выделить всё

Cursor  c = mDatabase.rawQuery("select * from bought where bo_date < ?", new String[] {"datetime('now', '-20 minutes')"});
опять таки все возвращает все записи, что не есть правильно

Собственно вопрос - что я делаю не правильно?
При наличии доступа к Google - бесподобен.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: выборка данных с условием из SQLite

Сообщение Foenix » 28 июл 2016, 13:33

а что это за конструкция такая
datetime('now', '-20 minutes') ?
И в каком формате хранится дата? от этого много зависит, между прочим.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
plesser
Сообщения: 25
Зарегистрирован: 10 ноя 2013, 14:05
Откуда: Жуковский

Re: выборка данных с условием из SQLite

Сообщение plesser » 28 июл 2016, 14:08

Foenix писал(а):а что это за конструкция такая
datetime('now', '-20 minutes') ?
И в каком формате хранится дата? от этого много зависит, между прочим.
Это конструкция возвращает время которое было 20 минут назад. Можете попробовать выполнить команду в sql-консоле (sqlitestudio.com) :
select datetime('now'), datetime('now', '-20 minutes')
и убедиться что она работает :)

Тип поля datetime
При наличии доступа к Google - бесподобен.

Ответить