Posiadanie tabeli z kolumną jak: mydate DATETIME
...
Mam zapytanie takie jak:
SELECT SUM(foo), mydate FROM a_table GROUP BY a_table.mydate;
Spowoduje to pogrupowanie według pełnych danych datetime
, w tym godzin i minut. Chcę utworzyć grupę przed, tylko przed datą, YYYY/MM/DD
nie przed YYYY/MM/DD/HH/mm
.
Czy ktoś wie jak to zrobić? Nadal mogę to robić (jako bankomat), dynamicznie w kodzie, ale czyszczę kod śmieci i można to zrobić za pomocą SQL Po prostu nie mogę dowiedzieć się, jak :(.
Odpowiedzi:
Prześlij datę i godzinę na datę, a następnie GROUP BY, używając tej składni:
Możesz też Pogrupować według aliasu, jak sugerował @ orlandu63:
Chociaż nie sądzę, by miało to jakikolwiek wpływ na wydajność, jest nieco jaśniejsze.
źródło
Odkryłem, że muszę grupować według miesiąca i roku, więc żadne z powyższych nie działało dla mnie. Zamiast tego użyłem date_format
źródło
Lub:
Bardziej wydajna (myślę.) Ponieważ nie musisz rzucać datą dwa razy w rzędzie.
źródło
Da godzinę według sumy z określonego dnia!
źródło