ActiveRecord来自created_at的不同天数?

时间:2013-01-27 11:53:08

标签: ruby ruby-on-rails-3 activerecord

如果需要询问字段(理想情况下,仅使用ActiveRecord),是否可以根据字段值检索不同记录的计数?

例如,以下内容根据“created_at”字段返回唯一记录的计数:

Record.count('created_at', :distinct => true)

但是,是否可以以类似的方式根据'created_at'字段计算,例如,唯一天数?

一个天真的ActiveRecord示例来解释我的意图:

Record.count('created_at'.day, :distinct => true)

(我知道字符串'created_at'不是'时间',但这是我想询问ActiveRecord的那种查询。)

1 个答案:

答案 0 :(得分:4)

您需要对记录进行分组。例如

Record.group('DATE(created_at)').count('created_at')

告诉您在每个特定日期创建的行数,或

Record.group('DAYOFWEEK(created_at)').count('created_at')

会告诉您一周中各个日期创建的行数。

请注意,使用通常的活动记录设置,这将以UTC格式进行日期计算,如果您想在特定时区进行计算,则必须将该转换添加到组声明中。