Страница 1 из 1

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

Добавлено: 27 июл 2016, 21:39
plesser
Собственно проблема, есть таблица 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')"});
опять таки все возвращает все записи, что не есть правильно

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

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

Добавлено: 28 июл 2016, 13:33
Foenix
а что это за конструкция такая
datetime('now', '-20 minutes') ?
И в каком формате хранится дата? от этого много зависит, между прочим.

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

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

Тип поля datetime