2010-03-29 98 views
2

我需要抓取一週中同一天的記錄,以查看一週前的X天。必須有一個更好的方式來做到這一點比這Rails:按星期幾查找時間戳

Transaction.find_by_sql「從交易中選擇*,其中提取物(DOW從日期)= 1和organisation_id = 4按日期倒序極限7」

它得到我需要的是Postgres,而不是「Rails-y」。日期是時間戳。 任何人都有建議?

+0

是依賴於用戶時區還是服務器的日子? – Anurag 2010-03-29 02:49:32

+0

根據服務器,當天將是當天。 – mikewilliamson 2010-03-29 02:53:21

+0

你需要回去多少個星期? – 2010-03-29 04:55:17

回答

0

AFAIK Rails沒有任何方法可以通過其他方式完成此操作。所以最好,也是更快的解決方案 - 在日期列上構建DOW索引並使用您的查詢。

1

你想回去幾天?

我寫了一個名爲by_star的寶石,它有一個動態查找器,適合於查找過去的特定天數。如果天數始終是一個號碼,你可以使用這個取景器:

Transaction.as_of_3_days_ago 

如果它是動態的話,我會建議使用一些諸如futurebetween,取決於如果您有事務在將來(即時間旅行):

Transaction.future(params[:start_date].to_time) 
Transaction.between(params[:start_date].to_time, Time.now) 
+0

謝謝!我會檢查一下。 – mikewilliamson 2010-03-29 20:35:22