2015-11-25 64 views
0

我有一些通過像這樣的列表中選擇一天平均碼:SQLite的選擇一般按天,而排除幾個小時

2015-11-09 09:45:34.038000 | 10 
2015-11-09 10:00:34.039000 | 5 

所以,如果這些是僅有的兩個條目11-09將7.5 。我的SQLite查詢工作,但我有另一個皺紋,我想補充。這是我到目前爲止:

queryCurs.execute('''select strftime('%m-%d-%Y', date), round(Avg(number),2) from tableA join tableB on tableB.name = tableA.name where place like ? group by strftime('%m-%d-%Y', date)''', (list[i],)) 

而且這個工作真的很好。但是,我只想包括在8a和8p之間發生的條目。我會如何去排除那些落在這個範圍內的東西進入我的平均水平?

回答

1

從時間戳中提取時間與time() function,並對其進行過濾。 (而且一個更簡單的提取日期的方法是使用date()函數)。

SELECT strftime('%m-%d-%Y', date), 
     round(Avg(number),2) 
FROM tableA 
JOIN tableB USING (name) 
WHERE place LIKE ? 
    AND time(date) BETWEEN '08:00:00' AND '20:00:00' 
GROUP BY date(date) 
+0

這樣工作得很好!非常感謝。 – otictac1

相關問題