2010-05-14 7 views
1

Je recueille des données à partir d'un système tous les ~ 10s (cette différence de temps varie en raison du temps de communication avec les périphériques en réseau). Je voudrais calculer les moyennes et les sommes des valeurs stockées pour ce modèle activerecord sur une base quotidienne. Tous les enregistrements sont stockés dans UTC.Comment regrouper des données de modèle d'enregistrement d'activation pour une période donnée?

Quelle est la bonne façon d'additionner et de calculer des valeurs moyennes pour, par exemple, le jour précédent de minuit à minuit HNE? Je peux le faire en sql mais je ne connais pas la "voie des rails" pour faire ce calcul.

Répondre

4

Essayez ceci:

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}) 
Questions connexes