Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
1

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

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

Author24 — интернет-сервис помощи студентам
Необходимо получить данные из базы 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2015, 15:47
Ответы с готовыми решениями:

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

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

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

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

8
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 256
07.05.2015, 16:17 2
мой тебе совет - делай выборку всех данных без условия даты, а выбирай нужные уже на уровне java.
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 16:24  [ТС] 3
Как?
0
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 256
07.05.2015, 16:26 4
конвертируй в java.util.date и вперед
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 17:14  [ТС] 5
Можно пример ?
0
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
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 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
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 256
07.05.2015, 17:27 8
Цитата Сообщение от YuraAAA Посмотреть сообщение
Да не за чем, вопрос очень простой, и, возможно, человек новичёк. Не стоит с ней заморачиваться.
лучше сразу приучаться к правильным архитектурным решениям
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
07.05.2015, 17:51  [ТС] 9
Цитата Сообщение от YuraAAA Посмотреть сообщение
SkyL1ne_tm, Храните время не как String, а как long.
спасибо большое! получилось!
0
07.05.2015, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2015, 17:51
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru