Вопрос по database, sqlite – Запрос в последний день, на прошлой неделе, в прошлом месяце SQLite

12

У меня есть эта таблица в моей базе данных Android SQLite:

<code>CREATE TABLE statistics (subject TEXT, hits INTEGER, fails INTEGER, date DATE)
</code>

Наdate поле сохраненоdatetime('now', 'localtime') в каждом регистре.

Теперь я должен запросить регистры за последний день, за последнюю неделю и за последний месяц, чтобы показать некоторую статистику. Я пытался что-то вроде этого

<code>    SELECT Timestamp, datetime('now', '-1 week') FROM statistics WHERE TimeStamp < datetime('now', '-1 week') 
</code>

и это

<code>    SELECT * FROM statistics WHERE date BETWEEN datetime('now', localtime') AND datetime ( 'now', '-1 month')
</code>

и не работает :(

Как мне это сделать?

Могу ли я проверить, в порядке ли запрос, просто перенаправив дату в эмулятор виртуального устройства?

Спасибо!

Спасибо @JonH. Я нашел решение, но пока не могу опубликовать его. Через несколько часов у вас все будет :) luismiyu
Вот подсказка. Последний день месяца -1 с первого дня следующего месяца. JonH

Ваш Ответ

5   ответов
0

ОТ статистики WHERE date & gt; = date ("сейчас", "начало месяца", "-1 месяц") И дата & lt; дата («сейчас», «начало месяца»)

В течение нескольких месяцев это "месяцы" и не месяц, как другие говорили раньше.

0

SELECT  * FROM  order_master
WHERE strftime('%Y-%m-%d',om_date) >= date('now','-14 days') AND 
strftime('%Y-%m-%d',om_date)<=date('now') order by om_date LIMIT 6
Предыдущая неделя или предыдущаяtwo недель?
4

SELECT * 
FROM statistics 
WHERE date >= date('now','start of month','-1 month')
AND date < date('now','start of month')
25

За последний день:

SELECT * FROM statistics WHERE date BETWEEN datetime('now', 'start of day') AND datetime('now', 'localtime');

За последнюю неделю:

SELECT * FROM statistics WHERE date BETWEEN datetime('now', '-6 days') AND datetime('now', 'localtime');

За последний месяц:

SELECT * FROM statistics WHERE date BETWEEN datetime('now', 'start of month') AND datetime('now', 'localtime');
-6 days без места! Не могу изменить его, он говорит, что редактировать должно быть не менее 6 символов
В sqlite 3.9.1 как минимум отсутствует'localtime' между'now', 'start...' может вызвать неожиданное поведение. Они должны бытьdatetime('now', 'localtime', 'start of day') В качестве примера.
0
SELECT 
max(date(date, 'weekday 0', '-7 day')) WeekStart,
max(date(date, 'weekday 0', '-1 day')) WeekEnd,date 
FROM table;

Похожие вопросы