Eine Tabelle mit einer Spalte wie: mydate DATETIME
...
Ich habe eine Frage wie:
SELECT SUM(foo), mydate FROM a_table GROUP BY a_table.mydate;
Dies wird vollständig gruppiert datetime
, einschließlich Stunden und Minuten. Ich möchte die Gruppe bis zum Datum, YYYY/MM/DD
nicht bis zum YYYY/MM/DD/HH/mm
.
Weiß jemand, wie man das macht? Ich kann es immer noch tun (da ich atm bin), dynamisch in meinem Code, aber ich bereinige den Müllcode und dies kann über SQL erfolgen. Ich kann einfach nicht herausfinden, wie :(.
Antworten:
Verwandeln Sie die Datums- und Uhrzeitangabe in ein Datum und dann in GROUP BY mit der folgenden Syntax:
Oder Sie können nach dem Alias gruppieren, wie @ orlandu63 vorgeschlagen hat:
Obwohl ich nicht denke, dass es einen Unterschied zur Leistung machen wird, ist es etwas klarer.
quelle
Ich stellte fest, dass ich mich nach Monat und Jahr gruppieren musste, sodass keines der oben genannten Verfahren für mich funktionierte. Stattdessen habe ich date_format verwendet
quelle
Oder:
Effizienter (glaube ich), weil Sie mydate nicht zweimal pro Zeile umsetzen müssen.
quelle
Es wird die Stunde nach Summe von einem bestimmten Tag geben!
quelle