鉴于我有一个Foo
带有标准 Rails 时间戳列的模型,计算创建记录之间的平均天数的最有效方法是什么?
问问题
1170 次
2 回答
5
模型的maximum
和minimum
类方法将使用 SQL 聚合函数min()
并max()
有效地找到极值。
span_secs = Foo.maximum(:created_at) - Foo.minimum(:created_at)
avg_secs = span_secs / (Foo.count - 1)
avg_days = avg_secs / (24 * 60 * 60)
于 2012-06-13T14:23:11.483 回答
0
如果你使用 MySQL
secs = Foo.where("created_at IS NOT NULL").average("UNIX_TIMESTAMP(created_at)").to_i
DateTime.strptime secs.to_s, "%s"
于 2014-10-08T16:07:44.543 回答