#android #date #sqlite #comparison
#Android #Дата #sqlite #сравнение
Вопрос:
У меня проблема, и я не могу понять, что ее вызывает. У меня запущена база данных sqlite3 для Android. Приложение помещает некоторые значения даты в виде текста в столбец. Теперь я хочу получить все записи, скажем, за этот месяц. Поэтому обычно я бы сделал что-то вроде этого:
ВЫБЕРИТЕ * СФОРМИРОВАТЬ myTable, ГДЕ date> ‘2011-10-01’
Однако мой результирующий набор состоит из всех записей. Столбец даты отформатирован таким же образом, поэтому проблем нет. Я просто понятия не имею, что вызывает этот странный вывод.
Большое вам спасибо за вашу помощь.
Ответ №1:
Хм, что произойдет, если вы измените это на:
SELECT * FROM myTable WHERE date like '2011-10-01%'
Комментарии:
1. Затем я получаю пустой набор результатов — моя первая запись относится к 4 октября … спасибо за предложение, но это не помогает, извините.
2. Это работает во всех моих приложениях для Android. Что-то не так с вашей базой данных и / или ее содержимым.
3. Спасибо за подсказку — это работает без пунктирных — но не с ними. Это так странно, и меня действительно беспокоит, в чем проблема. конечно, я мог бы сделать это без пунктира и переписать некоторый код, но я хочу знать, в чем основная проблема.
4. Пожалуйста, покажите инструкцию create для myTable, один результат этого кортежа (строка / столбец) и настоящую инструкцию select (форма не является допустимым ключевым словом). И чтобы было понятно — вы работаете на устройстве / эмуляторе Android (какая версия SDK? Какая цель?) с Eclipse / Java?
Ответ №2:
Я протестировал вашу проблему, и результаты показывают, что она действительно должна работать так, как вы пытались. По крайней мере, при обычной установке sqlite3, которая:
sqlite> select * from myTable;
2011-09-01
2011-08-01
2011-11-01
2011-10-02
sqlite> select * from myTable where date > "2011-10-01";
2011-11-01
2011-10-02
Итак, я предполагаю, что у вас проблема с форматом вашей базы данных или ваш запрос не похож на тот, который вы опубликовали. Помимо ФОРМЫ, вместо которой, я думаю, это опечатка.b
Комментарии:
1. Фактически это точная копия того, что я делаю. К сожалению, я использую реализацию Sqlite для Android, и, похоже, у нее проблема с ‘-‘, потому что после того, как я их удалил, она работает нормально. Однако я не понимаю, почему у него так много проблем с ‘-‘. Я все еще хотел бы использовать свой старый формат даты, иначе мне придется переписать некоторый код (мне это не нравится ;)).