2014-10-30 200 views
1

我知道,我知道有幾個非常類似的問題,但它們處理Postgres和MySQL。SQLite:按月創建組記錄並獲得每月記錄數

我有一個跟蹤頁面訪問的模型(事件),我想組合然後計算每個月創建的事件,並使用Chart.js顯示。但我不知道如何查詢SQLite收集在某個月創建的事件。

SQLite無法處理EXTRACT()或類似的東西Model.where("MONTH(created_at) = ?", 9)

我也試過這個Event.where("strftime('%-m', created_at) = ?", 9)這個question建議,沒有運氣。無論我嘗試哪個月,它都會返回0

作爲一個hack-y的長鏡頭,我甚至嘗試在事件中添加month列,填充created_at.month,但後來放棄了該分支。

我很新的Rails開發和上午搖搖欲墜的查詢,但我已經看過了下面的問題,但仍無法拼湊什麼: How to make a query in Postgres to group records by month they were created? (:created_at datetime column)Selecting by month in PostgreSQLGetting count of elements by `created_at` by day in a given monthGroup records by both month and year in RailsUse active record to find a record by month and day, ignoring year and time

+0

爲什麼%-m而不是%m? – barrycarter 2014-10-30 12:17:05

+0

http://stackoverflow.com/questions/650480/get-month-from-datetime-in-sqlite – 2014-10-30 12:43:08

回答

0

strftime的正確替換爲%m,而不是%-m

此外,strftime返回零填充字符串:

.where("strftime('%m', created_at) = ?", "09") 
+0

是的,這就是爲什麼我做了'%-m',這樣它就不會被零填充。即使只有'%m',我也會得到相同的輸出。 – 2014-10-31 02:42:04