Как сгруппировать по дате независимо от времени? - PullRequest
2 голосов
/ 04 декабря 2011

Я пытаюсь сгруппировать по дате (). У меня есть 3 записи с колонкой created_at:

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

Как мне поступить об этом?

Ответы [ 6 ]

8 голосов
/ 04 декабря 2011
... group by date(date_time_column)
2 голосов
/ 04 декабря 2011

Вы можете использовать функцию 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'
2 голосов
/ 04 декабря 2011

MySQL разрешает GROUP BY DATE(created_at).Таким образом, это перевело бы в ActiveRecord к .group(DATE(created_at))

Фактически, этот точный пример доступен в Руководствах по RailS для ActiveRecord, запрашивающих .

2 голосов
/ 04 декабря 2011

Вы пробовали следующее?

SELECT 
    DATE(created_at) AS created_date 
FROM 
    my_table 
GROUP BY 
    created_date
2 голосов
/ 04 декабря 2011

Это позволит вам группировать по месяцу и дню года

 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
1 голос
/ 04 декабря 2011

TRY

   GROUP BY DATE(`date_column`)

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...