Avoir une table avec une colonne comme: mydate DATETIME
...
J'ai une question telle que:
SELECT SUM(foo), mydate FROM a_table GROUP BY a_table.mydate;
Cela regroupera par le plein datetime
, y compris les heures et les minutes. Je souhaite faire le groupe d'ici, uniquement à la date et YYYY/MM/DD
non au YYYY/MM/DD/HH/mm
.
Quelqu'un sait-il comment faire ça? Je peux toujours le faire (comme je suis atm), dynamiquement dans mon code, mais je nettoie le code de la corbeille et cela peut être fait via le SQL, je ne peux tout simplement pas savoir comment :(.
Réponses:
Convertissez le datetime en une date, puis GROUP BY en utilisant cette syntaxe:
Ou vous pouvez GROUP BY l'alias comme @ orlandu63 suggéré:
Même si je ne pense pas que cela changera les performances, c'est un peu plus clair.
la source
J'ai trouvé que j'avais besoin de regrouper par mois et par année, donc aucun des éléments ci-dessus ne fonctionnait pour moi. Au lieu de cela, j'ai utilisé date_format
la source
Ou:
Plus efficace (je pense.) Parce que vous n'avez pas à lancer ma date deux fois par ligne.
la source
Il donnera l'heure par somme d'un jour particulier!
la source