С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

07.05.2015, 15:47. Просмотров 533. Ответов 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
Что я делаю не так?Или какие возможные другие варианты решения?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2015, 15:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выборка данных за последние 24 часа SQLite (Программирование Android):

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

Выборка по датам в SQLite - Программирование Android
Много страниц прочитал по этому вопросу, но мнения людей расходятся. Кто-то говорит что даты лучше хранить в формате String, кто-то, что в...

SQLite и выборка по условию - Программирование Android
SQLite не работает выборка по условию Устройство или ОС, прошивка: LG d380 Коротко опишу свои действия. 1. разобрал пример...

Sqlite выборка по маске - Программирование Android
Подскажите, имеется ли в sqlite возможность выборки данных по маске? Например (для SQL Server), select * from words where word like 'И_'.

Постолбцовое отображение данных из базы данных SQLite - Программирование Android
Уважаемые форумчане, помогите пожалуйста. Необходимо вывести данные из таблицы базы данных в TextView. Вот код, когда в TextView...

Вывод данных из базы данных SQLite - Программирование Android
Здравствуйте уважаемые форумчане! Делаю программу для работы с базой данных SQLite. Смысл простой: есть одна база, в ней 9 таблиц, от 2 до...

8
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 16:17 #2
мой тебе совет - делай выборку всех данных без условия даты, а выбирай нужные уже на уровне java.
0
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 16:24  [ТС] #3
Как?
0
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 16:26 #4
конвертируй в java.util.date и вперед
0
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 17:14  [ТС] #5
Можно пример ?
0
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 17:19 #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()){
//что-то делаем тут
}
}
писал с телефона, так что.. возможны опечатки
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
07.05.2015, 17:24 #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
Да не за чем, вопрос очень простой, и, возможно, человек новичёк. Не стоит с ней заморачиваться.
1
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
07.05.2015, 17:27 #8
Цитата Сообщение от YuraAAA Посмотреть сообщение
Да не за чем, вопрос очень простой, и, возможно, человек новичёк. Не стоит с ней заморачиваться.
лучше сразу приучаться к правильным архитектурным решениям
0
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 17:51  [ТС] #9
Цитата Сообщение от YuraAAA Посмотреть сообщение
SkyL1ne_tm, Храните время не как String, а как long.
спасибо большое! получилось!
0
07.05.2015, 17:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 17:51
Привет! Вот еще темы с ответами:

База данных sqlite - Программирование Android
Доброго времени суток. Пишу приложение в котором возможна отправка запросов и на вставку и на чтение БД. Насколько я ...

База данных SQLite - Программирование Android
Добрый день. Может я повторюсь с вопросом, но вы уж меня простите, не могу найти... Подскажите, пожалуйста, где можно прочитать как создать...

SQLite вывод данных - Программирование Android
Здравствуйте. Подскажите, как вывести данные из колонки БД и записать в массив. Пытался пока что только извлечь данные в переменные: ...

Сохранить max за последние два 2 часа - Delphi
Есть реальное время. Есть переменная temperatura: real; как мне за последние два часа, выводить максимум переменной??? Не могу...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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