Sqlite сравнить только с текущей датой - PullRequest
0 голосов
/ 02 мая 2018

Я сохраняю дату в формате yyyy-MM-dd. Я сравниваю это с текущей датой. Запрос выглядит так:

public Cursor getData() {
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();        
    String queryGetData = "SELECT * FROM " + TABLE_NAME 
              + " WHERE " + SEARCH_DATE + " >=  date('now') LIMIT 5";
    Cursor result = sqLiteDatabase.rawQuery(queryGetData, null);
    return  result;
}

Проблема в том, что запрос не возвращает никаких результатов, если они были созданы ранее (но все же в тот же день). Опять же, я сохраняю только часть даты в базе данных, а не время.

Что вызывает такое поведение?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Если ваш формат даты и времени не неправильный, вы можете проверить и добавить параметр localtime в функцию date ()

String queryGetData = "SELECT * FROM " + TABLE_NAME 
              + " WHERE " + SEARCH_DATE + " >=  date('now', 'localtime') LIMIT 5";

Внимание

  • при использовании функции Date обратите внимание на параметр localtime в date ()
0 голосов
/ 03 мая 2018

Я предполагаю, что вы на самом деле храните данные не в формате yyyy-MM-dd, а в каком-то другом формате, который включает время, иначе время не будет иметь значения.

Вы можете попробовать: -

    String queryGetData = "SELECT * FROM " + TABLE_NAME + " WHERE date(" + SEARCH_DATE + ") >= date('now') LIMIT 5";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...