21

私のAndroidSQLiteDBには次のテーブルがあります。

CREATE TABLE statistics (subject TEXT, hits INTEGER, fails INTEGER, date DATE)

オンdateフィールドはdatetime('now', 'localtime')すべてのレジスタに格納されます。

ここで、統計を表示するために、先日、先週、先月のレジスターを照会する必要があります。私はこのようなことを試みてきました

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

この

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

動作しません:(

どうすればいいですか?

仮想デバイスエミュレータで日付を転送するだけで、クエリがOKかどうかを確認できますか?

ありがとう!

4

6 に答える 6

34

私はこの解決策を見つけました。私はそれがあなたのために働くことを願っています。

最終日:

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');
于 2012-05-09T11:36:36.777 に答える
7

このコードは前月にあなたを取得する必要があります

SELECT * 
FROM statistics 
WHERE date >= date('now','start of month','-1 month')
AND date < date('now','start of month')
于 2016-06-28T18:02:51.030 に答える
4
SELECT * 
FROM statistics 
WHERE date >= date('now','start of month','-1 months')
AND date < date('now','start of month')

より多くの月では、他の人が前に言ったようにではなく、 「月」です。

于 2018-09-17T09:14:55.863 に答える
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
于 2012-08-08T06:55:22.577 に答える
0
SELECT 
max(date(date, 'weekday 0', '-7 day')) WeekStart,
max(date(date, 'weekday 0', '-1 day')) WeekEnd,date 
FROM table;
于 2013-04-29T10:34:07.180 に答える
0

カレンダーを作成し、そこからタイムスタンプを取得できます

final Calendar todayCalendar = Calendar.getInstance();
final long todayTimestamp = todayCalendar.getTime().getTime();
todayCalendar.add(Calendar.DAY_OF_YEAR, -7);
final long aWeekAgoTimestamp = todayCalendar.getTime().getTime();
final String selection = TABLE_COLUMN_DATE_CREATED + " BETWEEN " + aWeekAgoTimestamp + " AND " + todayTimestamp;
于 2020-04-08T17:29:13.867 に答える