Имея таблицу с колонкой вроде: mydate DATETIME
...
У меня есть запрос, такой как:
SELECT SUM(foo), mydate FROM a_table GROUP BY a_table.mydate;
Это будет группировать по полной datetime
, включая часы и минуты. Я хочу сделать группу, только по дате, а YYYY/MM/DD
не по YYYY/MM/DD/HH/mm
.
Кто-нибудь знает, как это сделать? Я все еще могу сделать это (как я atm), динамически в моем коде, но я очищаю мусорный код, и это можно сделать с помощью SQL, я просто не могу узнать, как :(.
Ответы:
Приведите дату и время к дате, затем GROUP BY, используя этот синтаксис:
Или вы можете GROUP BY псевдоним, как @ orlandu63 предложил:
Хотя я не думаю, что это повлияет на производительность, это немного яснее.
источник
Я обнаружил, что мне нужно группировать по месяцам и годам, поэтому ни один из вышеперечисленных не помог мне. Вместо этого я использовал date_format
источник
Или:
Более эффективный (я думаю.) Потому что вам не нужно разыгрывать mydate дважды за ряд.
источник
Это даст час суммой от определенного дня!
источник