我正在尝试按Date()进行分组。我有created_at
列的3条记录:
2011-12-03 08:00:24, 2011-12-03 08:12:10, 2011-12-04 09:00:00
我想只按年,月,日分组,不分时间。所以对于上面的例子。它应该只返回两行:
2011-12-03 and 2011-12-04
我应该怎么做?
答案 0 :(得分:8)
... group by date(date_time_column)
答案 1 :(得分:2)
这应该允许您按月和日分组
SELECT group_by_column
, DATE_FORMAT(created_at, '%Y')
, DATE_FORMAT(created_at, '%m')
, DATE_FORMAT(created_at, '%d')
FROM my_table
GROUP BY group_by_column
或者如果你想一起做这些。
SELECT group_by_column
, DATE_FORMAT(created_at, '%Y%m%d')
FROM my_table
GROUP BY group_by_column
答案 2 :(得分:2)
您是否尝试过以下操作?
SELECT
DATE(created_at) AS created_date
FROM
my_table
GROUP BY
created_date
答案 3 :(得分:2)
MySQL允许GROUP BY DATE(created_at)
。这样就可以将ActiveRecord转换为.group(DATE(created_at))
事实上,Rails Guides on ActiveRecord querying中提供了这个确切的示例。
答案 4 :(得分:2)
您可以使用Date()函数 http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date
mysql> SELECT DATE('2003-12-31 01:02:03');
-> '2003-12-31'
答案 5 :(得分:1)