Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 21 фев 2018, 10:11

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: SQLite и работа с датой
СообщениеДобавлено: 07 фев 2018, 09:17 

Зарегистрирован: 07 фев 2018, 09:01
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Собственно вопрос:
Как в SQL-запросе выбрать все записи на текущую дату?
Предыстория:
1. Поле в БД имеет тип INTEGER, т.к. SQLite не имеет специального типа для хранения даты.
2. Для сохранения даты в Android-приложении используется код:
Код: [ Загрузить ] [ Скрыть ]
  1. Date date = new Date(); 
  2. ... 
  3. cv = new ContentValues(); 
  4. ... 
  5. cv.put(COLUMN_DATA, date.getTime()); 
  6. ... 
  7. long newId = db.insert(Table.TABLE_NAME, null, cv); 

3. Для чтения данных:
Код: [ Загрузить ] [ Скрыть ]
  1. Cursor c = db.query(Table.TABLE_NAME, null, selection, args, null, null, null); 
  2. if (c != null){ 
  3.             if (c.moveToFirst()){ 
  4.                 indication = new Indication(c); 
  5.                 Log.d(LOG_TAG, indication.toString()); 
  6.             } else{ 
  7.                 Log.d(LOG_TAG, "getIndication.  Cursor NOT moved to First!!"); 
  8.             } 
  9.             c.close(); 
  10.         } else{ 
  11.             Log.d(LOG_TAG, "getIndication.  Cursor is NULL"); 
  12.         } 
  13. ... 
  14. public Indication (Cursor c){ 
  15.         super(); 
  16. //        Log.d(TAG, "Constructor Indication on Cursor"); 
  17. //        Читаем из БД 
  18.         int idx; 
  19.         for (String colName : c.getColumnNames()){ 
  20.             idx = c.getColumnIndex(colName); 
  21.             switch (colName){ 
  22.                 case _ID: 
  23.                     _id = c.getLong(idx); 
  24.                     break; 
  25.                 case COLUMN_DATA: 
  26.                     date = new java.sql.Date(c.getLong(idx)); 
  27.                     break; 
  28. ... 


Т.о. в приложении данные по дате выводятся отлично - как записываю, так и читаю.
А вот как только возникла потребность создать запрос по выборке на конкретную дату - так все.
В самой БД это просто числа, конвертировать в дату она их не умеет.
Не могу сообразить как это сделать.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SQLite и работа с датой
СообщениеДобавлено: 08 фев 2018, 06:18 

Зарегистрирован: 07 фев 2018, 09:01
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
На текущий момент решил так:
Из дате, на которую нужно найти, получаю 2 числа, чтобы получилось условие вида:
Код: [ Загрузить ] [ Скрыть ]
  1. WHERE dt >= <нужная дата без времени> AND dt < <нужная дата + 1 день без времени> 

Запрос выполняю с этим условие.

Есть лучшие решения?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB