我正试图在ruby on rails上创建一些kpi。
例如,我如何统计周日或周三创建的所有用户?
我现在ruby可以用以下代码获得一周中的每一天,例如:
u = User.last
u.created_at.wday #==> wday get the day of week (0: sunday, 1: monday..)
但以下不起作用:
User.where(created_at.wday: 0).count
我不想循环每个用户,检查它是否是在周日创建的,并将其放入数组中,因为这似乎很昂贵。
有什么想法吗?
如果您使用的是MYSQL,您可以使用一周中的
User.where('DAYOFWEEK(created_at) = ?', 0).count
对于Postgres来说,这应该做到:
User.where("extract(dow from created_at) = ?", 0)
编辑:对于SQLITE,以下工作:
User.where("strftime('%w', created_at) = ?", 0)