2011-10-21 3 views
0

Aidez-moi s'il vous plaît. Comment puis-je sélectionner la somme de temps en secondes par aujourd'hui? Par exemple, j'ai une table:Activerecord colonne supplémentaire de la somme

online | offline | .... 
10:33 | 12:08 | ... 
13:10 | 13:34 | ... 

Et je dois recevoir la somme de ces périodes en secondes (ou minutes - ce n'est pas important). Merci!

Répondre

3
def secounds 
    (self.offline-self.online).to_i # will give you the time in secounds 
end 

alors vous pouvez l'utiliser pour les blocs

sum=Integer.new 
Model.where(_your conditions_).each do |instance| 
    sum+=instance.secounds 
end 
sum # << the secounds of all the data you selected using the weher coondition 

// Ahh et une chose. Il ya une loi non écrite que vous ne créez jamais une colonne pour les données que vous pouvez calculer à partir d'autres colonnes.

Sur DB seulement:

Model.sum("offline-online") 
Model.where("my condition").sum("offline-online") # also with conditions.... 
+0

Oh, désolé, mais je l'ai signifié "Comment puis-je calculer la base de données à l'aide", sans aucun code de rubis. Il est important pour les applications chargées – ValeriiVasin

+0

Voir le message ... l'a édité! – davidb

+0

Merci beaucoup! – ValeriiVasin

Questions connexes