Как искать в sqlite по дате?

Я сохраняю свою таблицу в столбце current_date в следующем формате: «гггг-мм-дд чч: мм»

Как искать в базе данных по дате? Мне нужны, например, записи от 25 сентября 2013 года, исключающие час.

Если я сделаю это «Выберите current_date из моей базы данных, где current_date = '2013-09-25'», это не сработает. Я должен сделать это «Выберите current_date из моей базы данных, где current_date = '2013-09-25 09:25'». Но мне нужна только запись на основе даты, а не на основе даты и часа.


person Roland    schedule 26.09.2013    source источник
comment
Вы пробовали сказать WHERE SUBSTR(current_date, 1, 10) = '2013-09-25'?   -  person PP.    schedule 26.09.2013
comment
Этот SUBSTR работает в SQLite?   -  person Roland    schedule 26.09.2013
comment
sqlite.org/lang_corefunc.html   -  person PP.    schedule 26.09.2013
comment
Спасибо @PP. Это сработало. Большое спасибо.   -  person Roland    schedule 26.09.2013


Ответы (3)


По-видимому, ваши даты хранятся в виде строк. Вы можете использовать LIKE, чтобы отказаться от часа:

 select current_date from mydatabase where current_date like '2013-09-25%'
person njzk2    schedule 26.09.2013
comment
как я могу сделать это на rawQuery? 'rawQuery (sql, selectionArgs' - person Roland; 26.09.2013

SELECT * FROM mydatabase WHERE ( current_date > '2011-08-07') AND (current_date < '2011-08-08')

Замените первую дату днем, о котором вы хотите получить информацию, а затем обновите вторую дату следующим днем.

person Kanwaljit Singh    schedule 26.09.2013
comment
обратные кавычки так MySQL - person njzk2; 26.09.2013
comment
С обычным (с учетом регистра) индексом это может быть лучше оптимизировано, чем LIKE. - person CL.; 21.10.2013

Вы можете напрямую использовать функцию даты sqlite

Select current_date from mydatabase where date(current_date) = '2013-09-25'

вместо

Select current_date from mydatabase where current_date = '2013-09-25'

Дополнительно: - Если вы хотите использовать время, вы также можете сделать это с помощью функции времени.

Select current_date from mydatabase where time(current_date) = '09:25'
person Yash Vyas    schedule 21.10.2013