我在rails 4.2和SQLite上使用Ruby。
我知道我可以使用以下代码在created_at
之前对记录进行分组,然后将每个组的总数相加以返回每天的哈希值:
Order.group("date(created_at)").select("created_at, sum(total) as total")
我想知道年,月,小时
的日期()功能是否等效?如果没有,我最好选择分组记录,不使用宝石?
答案 0 :(得分:0)
cast
是您在SQLite中寻找的。 p>
Order.where("cast(strftime('%Y', created_at) as int) = ?", year)
Order.where("cast(strftime('%m', date_column) as int) = ?", month)
Order.where("cast(strftime('%d', date_column) as int) = ?", day_of_month)
关于分组(编辑):
# group by year
Order.group("strftime('%Y', created_at)").select("created_at, sum(total) as total")
# group by month
Order.group("strftime('%m', created_at)").select("created_at, sum(total) as total")
# group by day
Order.group("strftime('%d', created_at)").select("created_at, sum(total) as total")