我在 Rails 中运行以下命令:
coe = trackers.where(:trackable_type => "Mailing").count(:group => 'DATE(created_at)')
它返回一个哈希值,其中的项目很好地分组。
但是,我想不仅按日期分组,而且按小时分组,而不是按分钟或秒分组。
如何运行此查询,以便所有繁重的工作都由 Postgresql 完成,并且在我取回数据集后不进行转换?
我的错误是我想按日期和时间分组。对困惑感到抱歉。
我在 Rails 中运行以下命令:
coe = trackers.where(:trackable_type => "Mailing").count(:group => 'DATE(created_at)')
它返回一个哈希值,其中的项目很好地分组。
但是,我想不仅按日期分组,而且按小时分组,而不是按分钟或秒分组。
如何运行此查询,以便所有繁重的工作都由 Postgresql 完成,并且在我取回数据集后不进行转换?
我的错误是我想按日期和时间分组。对困惑感到抱歉。
听起来你想要 date_trunc() 函数:
http://www.postgresql.org/docs/current/interactive/functions-datetime.html#FUNCTIONS-DATETIME-TABLE
我不想按日期分组,而是按小时分组,而不是按分钟或秒分组。
大胆强调我的。
所以date_trunc()
可能不是你想要的,但是EXTRACT
ordate_part()
:
coe = trackers.where(:trackable_type => "Mailing").count(:group => 'EXTRACT (hour FROM created_at)')