SQLite Date Query В Android - PullRequest
       1

SQLite Date Query В Android

0 голосов
/ 15 июня 2011

Я использую базу данных SQLite для своего приложения.

Структура таблицы выглядит так:

_id  : integer primary key
name : text
day  : date

Я могу сохранить дату в формате: dd-mmmmm-yyyy например. 15-June-2011

Но когда я пытался извлечь из базы данных все записи, отфильтрованные по дате, он возвращает мне ноль.

database.query(DATABASE_TABLE, new String[] { "strftime('%d-%mm-%Y',date('now'))","strftime('%d-%m-%Y',"+KEY_DAY+")" },
"strftime('%d-%m-%Y',date('now'))=" + KEY_DAY , null,null,null,null,null);

Она не совпадает с любой датой, хотя некоторые даты совпадают.

Я уже изучил документацию по SQLite. Но пока не нашел решения.

Я хочу что-то вроде:

 select * from table where day=curdate();

Как я могу сделать ту же задачу в SQLite? (Да, я могу изменить формат даты, хранящейся в Dateabase)

Какие есть другие альтернативы для той же задачи?

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

В Java-программировании вы можете конвертировать любой формат даты в long (время в миллисекундах) и наоборот. Мое мнение заключается в том, чтобы сохранить формат даты в длинном формате в Java, а затем сохранить длинное значение даты в базе данных. также во время извлечения вы можете получить длинное значение и затем отформатировать его в соответствии с ожидаемым форматом даты. Я использовал этот тип логики для нескольких приложений.

Спасибо Дипак.

0 голосов
/ 15 июня 2011

Функция strftime('%d-%m-%Y',date('now')) возвращает строку с месяцем в числовом формате (от 01 до 12).Насколько я могу судить по документам , не существует спецификатора формата, который бы возвращал полное название месяца.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...