Mysql 如何在不考虑时间的情况下按日期分组?
我正在尝试按日期进行分组()。我在列中创建了3条记录:Mysql 如何在不考虑时间的情况下按日期分组?,mysql,sql,ruby-on-rails-3,activerecord,Mysql,Sql,Ruby On Rails 3,Activerecord,我正在尝试按日期进行分组()。我在列中创建了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 我该怎么做呢?这将允许您按年度、月份和日期进行分组 SELECT group_by_column , DATE_FORMAT(created_at, '%Y')
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
我该怎么做呢?这将允许您按年度、月份和日期进行分组
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
你试过以下方法吗
SELECT
DATE(created_at) AS created_date
FROM
my_table
GROUP BY
created_date
MySQL允许按日期分组(创建于)。因此,这将在ActiveRecord中转换为
.group(DATE(created_at))
事实上,这个确切的例子可以在中找到。您可以使用Date()函数。试一试
是的,这在Rails 3中按日期和时间对其进行分组,AR:
Foobar.group('date\u格式(创建于,“%Y%m%d”))
。谢谢你
SELECT
DATE(created_at) AS created_date
FROM
my_table
GROUP BY
created_date
mysql> SELECT DATE('2003-12-31 01:02:03');
-> '2003-12-31'
GROUP BY DATE(`date_column`)