#ruby-on-rails #activerecord
#ruby-on-rails #активная запись
Вопрос:
Помогите мне, пожалуйста. Как я могу выбрать сумму времени в секундах к сегодняшнему дню? Например, у меня есть какая-то таблица:
online | offline | ....
10:33 | 12:08 | ...
13:10 | 13:34 | ...
И мне нужно получить сумму этих периодов в секундах (или минутах — это не важно).
Спасибо!
Ответ №1:
def secounds
(self.offline-self.online).to_i # will give you the time in secounds
end
затем вы можете использовать это для блоков
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
// Ах, и еще кое-что. Существует неписаный закон, согласно которому вы никогда не создаете столбец для данных, которые вы можете вычислить из других столбцов.
Только в базе данных:
Model.sum("offline-online")
Model.where("my condition").sum("offline-online") # also with conditions....
Комментарии:
1. О, извините, но я имел в виду «Как я могу вычислить это с помощью базы данных», без какого-либо кода ruby. Это важно для приложений с высокой загрузкой