Группировка по части поля даты и времени MySQL - PullRequest
0 голосов
/ 09 марта 2019

Я думал, что это работает, так как он дает результаты текущих (и только) записей в день, когда я его тестировал, но теперь, когда есть записи в течение нескольких дней, результаты не соответствуют моим ожиданиям.

SELECT DATE_FORMAT(DateField, '%M %h, %Y') AS `Date`, SUM(NumberCount) AS Counts 
FROM tablename 
GROUP BY DATE_FORMAT(DateField, '%M %h, %Y') 
ORDER BY `Date`

дает

March 04, 2019  2 
March 06, 2019  2 
March 11, 2019  3

, в то время как таблица содержит

2019-03-07 18:15:05 1
2019-03-07 18:21:58 1
2019-03-08 16:45:05 2
2019-03-08 23:19:00 1
2019-03-08 23:19:01 2

так я и ожидал

March 07, 2019  2
March 08, 2019  5

Есть идеи, как получить ожидаемые результаты?

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

по электронной почте Ой! Нашел проблему, так как у меня был код формата wront на день. Должно быть

SELECT DATE_FORMAT(DateField, '%M %d, %Y') AS `Date`, SUM(NumberCount) AS Counts 
FROM tablename 
GROUP BY DATE_FORMAT(DateField, '%M %d, %Y') 
ORDER BY `Date`
0 голосов
/ 09 марта 2019

Просто используйте функцию date.Вам действительно нужно отформатировать дату в виде строки?

SELECT DATE(DateField) AS `Date`, SUM(NumberCount) AS Counts 
FROM tablename 
GROUP BY DATE(DateField) 
ORDER BY `Date`;

Если вы используете DATE_FORMAT(), не включайте часы, в которых должен быть день месяца.Вы, вероятно, хотели бы: ''%M %d, %Y'.

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