Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
#1

Выборка данных за последние 24 часа SQLite - Android

07.05.2015, 15:47. Просмотров 452. Ответов 8
Метки нет (Все метки)

Необходимо получить данные из базы SQLite за последние 24 часа. В базе одна таблица с 3-мя колонками(широта, долгота и время). Время определяю через Calendar:
Java
1
2
3
4
5
Calendar addTimeCalendar;
public String getAddTime() {
    addTimeCalendar = Calendar.getInstance();
    return addTime = String.valueOf(addTimeCalendar.getTimeInMillis());
}
Затем записываю в базу:
Java
1
2
3
4
5
6
7
8
9
10
11
12
public void addCoordinates() {
    SQL sqlHelper = new SQL(this);
    SQLiteDatabase db = sqlHelper.getWritableDatabase();
    ContentValues cv = new ContentValues();
    Log.d(LOG_TAG, "--- Insert in coordinates: ---");
    cv.put("Latitude", latitude);
    cv.put("Longitude", longitude);
    cv.put("Time", getAddTime());
    long rowID = db.insert("coordinates", null, cv);
    db.close();
    sqlHelper.close();
}
Для выборки такой запрос:
SQL
1
SELECT * FROM coordinates WHERE datetime('now', 'start of day', '-1 day')
Но в результате выборка получается, как если использовать
SQL
1
SELECT * FROM coordinates
Что я делаю не так?Или какие возможные другие варианты решения?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 16:17     Выборка данных за последние 24 часа SQLite #2
мой тебе совет - делай выборку всех данных без условия даты, а выбирай нужные уже на уровне java.
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 16:24  [ТС]     Выборка данных за последние 24 часа SQLite #3
Как?
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 16:26     Выборка данных за последние 24 часа SQLite #4
конвертируй в java.util.date и вперед
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 17:14  [ТС]     Выборка данных за последние 24 часа SQLite #5
Можно пример ?
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 17:19     Выборка данных за последние 24 часа SQLite #6
для начала почитай про ORM
https://ru.wikipedia.org/wiki/ORM

затем попробуй у себя реализовать подобную модель (создай объекты данных в таблице)
и оперируй данными как угодно

Например в итоге ты получил список объектов ArrayList<Data> data

Java
1
2
3
4
5
6
7
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DayOfMouth, Calendar.get(Calendar.DayOfMouth)-1);
for(Data d: data){
if(d.GetDate().after(cal.getDate()){
//что-то делаем тут
}
}
писал с телефона, так что.. возможны опечатки
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
07.05.2015, 17:24     Выборка данных за последние 24 часа SQLite #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от fgtmenow Посмотреть сообщение
мой тебе совет - делай выборку всех данных без условия даты, а выбирай нужные уже на уровне java.
Ути-ути, не надо так делать.

SkyL1ne_tm, Храните время не как String, а как long.
Java
1
2
3
public long getAddTime() { 
return Calendar.getInstance().getTimeInMillis()); 
}
Вот выборка.
Java
1
long dayAgoInMillis = Calendar.getInstance().getTimeInMillis() - (24l*60*60*1000);
SQL
1
SELECT * FROM coordinates WHERE datetime>dayAgoInMillis
Добавлено через 1 минуту
Цитата Сообщение от fgtmenow Посмотреть сообщение
для начала почитай про ORM
Да не за чем, вопрос очень простой, и, возможно, человек новичёк. Не стоит с ней заморачиваться.
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 17:27     Выборка данных за последние 24 часа SQLite #8
Цитата Сообщение от YuraAAA Посмотреть сообщение
Да не за чем, вопрос очень простой, и, возможно, человек новичёк. Не стоит с ней заморачиваться.
лучше сразу приучаться к правильным архитектурным решениям
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 17:51     Выборка данных за последние 24 часа SQLite
Еще ссылки по теме:

Android Sqlite выборка по маске
Выборка с базы данных SQLite Android
Не создается база данных SQLite Android
Android Запись данных в 2 таблицы SQLite
Android SQLite и выборка по условию

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 17:51  [ТС]     Выборка данных за последние 24 часа SQLite #9
Цитата Сообщение от YuraAAA Посмотреть сообщение
SkyL1ne_tm, Храните время не как String, а как long.
спасибо большое! получилось!
Yandex
Объявления
07.05.2015, 17:51     Выборка данных за последние 24 часа SQLite
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru