2010-05-14 74 views
1

我每10秒收集一个系统的数据(这个时间差异是由于与联网设备的通信时间而异)。我想每天计算此活动记录模型的存储值的平均值和总和。所有记录均以UTC格式保存。如何在特定时间段内聚合activerecord模型数据?

对于例如从午夜到东部午夜的前一天的总和和平均值,正确的方法是什么?我可以在SQL中做到这一点,但不知道“轨道方式”来做这个计算。

回答

4

试试这个:

tz = ActiveSupport::TimeZone.new("Eastern Time (US & Canada)") 
range = 1.day.ago(tz.now).beginning_of_day..1.day.ago(tz.now).end_of_day 
total = Model.sum(:column, :conditions => {created_at >= range}) 
相关问题