Tener una tabla con una columna como: mydate DATETIME
...
Tengo una consulta como:
SELECT SUM(foo), mydate FROM a_table GROUP BY a_table.mydate;
Esto agrupará por completo datetime
, incluyendo horas y minutos. Deseo formar el grupo, solo por la fecha, YYYY/MM/DD
no por el YYYY/MM/DD/HH/mm
.
Alguien sabe cómo hacer esto? Todavía puedo hacerlo (como soy cajero automático), dinámicamente en mi código, pero estoy limpiando el código basura y esto se puede hacer a través del SQL. Simplemente no puedo descubrir cómo :(.
Respuestas:
Transmita la fecha y hora a una fecha, luego GROUP BY usando esta sintaxis:
O puede AGRUPAR POR el alias como @ orlandu63 sugirió:
Aunque no creo que haga ninguna diferencia en el rendimiento, es un poco más claro.
fuente
Descubrí que necesitaba agrupar por mes y año, así que ninguno de los anteriores funcionó para mí. En su lugar, utilicé date_format
fuente
O:
Más eficiente (creo). Porque no tiene que emitir mydate dos veces por fila.
fuente
¡Dará la hora por suma de un día en particular!
fuente