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,但可以在適當的位置乘以/除以1000來使用Unix時間。
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還是本地? –