0
に応じてカウントがここに私のsqliteのテーブルがあります:過去7日間のデータを取得し、挿入された行とデータを取得日
TimeStamp | Counter --------- | -------- (in ms) ...
そして、私はこの
| Day | Sum(Counter) | ---------------------- |Monday|10 | |Tuesday| 20 |
に応じてカウントがここに私のsqliteのテーブルがあります:過去7日間のデータを取得し、挿入された行とデータを取得日
TimeStamp | Counter --------- | -------- (in ms) ...
そして、私はこの
| Day | Sum(Counter) | ---------------------- |Monday|10 | |Tuesday| 20 |
ミリ秒のようなものを引き起こすたいことの一つではありませんSQLite's supported date formatsがありますが、適切な場所でUnix Timeを1000倍することで使用できます。これらの修飾子とSQLiteの、date functionで
は、ローカルタイムゾーンの現在の日の開始を返します。
datetime('now', 'localtime', 'start of day')
代わりstrftime
を使用し、ミリ秒にこれを変換するには:
SELECT ...
FROM MyTable
WHERE TimeStamp >= strftime('%s', 'now', 'localtime', 'start of day', '-7 days') * 1000
...
へタイムスタンプの日を取得するには、もう一度strftime
を使用する必要があります。
SELECT strftime('%w', TimeStamp/1000, 'unixepoch', 'localtime') AS Day,
sum(Counter)
FROM MyTable
WHERE TimeStamp >= strftime('%s', 'now', 'localtime', 'start of day', '-7 days') * 1000
GROUP BY 1;
あなたがCASE expressionを使用し、代わりに一日数の曜日名を使用する場合:
SELECT CASE strftime('%w', TimeStamp/1000, 'unixepoch', 'localtime')
WHEN '0' THEN 'Sunday'
WHEN '1' THEN 'Monday'
...
END AS Day,
sum(Counter)
...
タイムスタンプ値の形式は何ですか? –
ミリ秒単位です – Akshat
タイムゾーンの日数は? UTCまたはローカル? –