我很难理解为什么在 Rails 中的 SQLite 中的 datetime 列上按 DATE 分组返回 nil。我想返回在 startdate 字段中有值的用户计数,按日期分组。
任何人都可以帮忙吗?删除以下查询的 DATE 方面会返回我期望的结果。请参阅下面的不同查询和结果:
User.where("startdate IS NOT NULL").group("DATE(startdate)").count
给
SELECT COUNT(*) AS count_all, DATE(startdate) AS date_startdate
FROM "users"
WHERE (startdate IS NOT NULL)
GROUP BY DATE(startdate)
=>{nil=>10}
我期望的是日期数组(例如 {“2013-06-04”=>3、“2013-06-10”=>4、“2013-06-11”=>3}。在下面的查询中它没有 DATE 运算符,结果更符合我的预期,但显然我也不想按时间分组(在我的实际数据库中,同一日期有不同的时间)。
User.where("startdate IS NOT NULL").group("(startdate)").count
给
SELECT COUNT(*) AS count_all, (startdate) AS startdate
FROM "users"
WHERE (startdate IS NOT NULL)
GROUP BY (startdate)
=>{"2013-06-04 17:27:30.553802+0000"=>3, "2013-06-10 09:24:06.207327+0000"=>4,
"2013-06-11 12:20:37.745819+0000"=>3}