Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
1

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

07.05.2015, 15:47. Просмотров 1021. Ответов 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)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2015, 15:47
Ответы с готовыми решениями:

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

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

Как подсчитать сколько юзеров зарегалось за последние 24 часа?
Всем привет. Поможете реализовать подсчет? Есть таблица USERS uid | pass | ref | date в поле...

Вытащить последние 10 записей из SQLite
Здраствуйте, подскажите как сделать это. делаю так и я получаю эти значения, но вот тока мне их...

Рандомная выборка n-записей за 3 последние 3 месяца
Как составить запрос, сделать выборку допустим по 1 или 2 записи с каждого месяца (последние 3...

8
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 256
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
Сообщений: 256
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
Сообщений: 256
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
1601 / 1333 / 291
Регистрация: 25.10.2009
Сообщений: 3,486
Записей в блоге: 2
07.05.2015, 17:24 7
Лучший ответ Сообщение было отмечено SkyL1ne_tm как решение

Решение

Цитата Сообщение от 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
Сообщений: 256
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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 17:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Выборка в sqlite
Подскажите как сделать выборку в sqlite Делаю так,не получается SQL.Add('select * from TABLIZA ...

Sqlite выборка по возрастам
нужно выбрать из базы людей по возрастным интервалам есть столбцы birthdate (text), содержит...

Sqlite выборка по маске
Подскажите, имеется ли в sqlite возможность выборки данных по маске? Например (для SQL Server),...


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

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

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