我很努力地理解为什么按照DATE在Rails中SQLite的日期时间列上分组返回nil。我想返回在startdate字段中有值的用户数,按日期分组。在DATE中按DATE分组返回零
任何人都可以帮忙吗?删除以下查询的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年6月4日“=> 3,”2013-06-10“=> 4, ”2013-06-11“=> 3}在下面的查询中没有DATE运算符,结果更符合我的预期,但显然我不想按时分组(在我的实际数据库中) e是在同一日期的不同时间)。
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}
辉煌 - 第一个查询完成了这项工作,因为它们都在同一个时区 - 谢谢。仅供参考,第二个抛出错误'语法错误,意外')',期待$结束' - 也许它需要纠正社区?无论如何,非常感谢。 – Nick
双/单引号错误...更正! –