сравнение строк sqlite

#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, и, похоже, у нее проблема с ‘-‘, потому что после того, как я их удалил, она работает нормально. Однако я не понимаю, почему у него так много проблем с ‘-‘. Я все еще хотел бы использовать свой старый формат даты, иначе мне придется переписать некоторый код (мне это не нравится ;)).