Ter uma tabela com uma coluna como: mydate DATETIME
...
Eu tenho uma consulta como:
SELECT SUM(foo), mydate FROM a_table GROUP BY a_table.mydate;
Isso agrupará por completo datetime
, incluindo horas e minutos. Desejo fazer o grupo até, somente até a data YYYY/MM/DD
não até o YYYY/MM/DD/HH/mm
.
Alguém sabe como fazer isto? Ainda posso fazer isso (como sou atm), dinamicamente no meu código, mas estou limpando o código do lixo e isso pode ser feito através do SQL. Não consigo descobrir como :(.
Respostas:
Transmitir data e hora para uma data e GROUP BY usando esta sintaxe:
Ou você pode agrupar pelo alias como @ orlandu63 sugeriu:
Embora eu não ache que isso faça diferença no desempenho, é um pouco mais claro.
fonte
Descobri que precisava agrupar por mês e ano, para que nenhuma das opções acima funcionasse para mim. Em vez disso, usei date_format
fonte
Ou:
Mais eficiente (eu acho.) Porque você não precisa transmitir minha data duas vezes por linha.
fonte
Dará a hora pela soma de um dia em particular!
fonte