Usando o MySQL, preciso consultar uma tabela que possui um campo de data e hora. Eu preciso contar todos os registros para uma determinada semana. Usando date_format(colname, "%Y %V") retorna a semana #, mas eu preciso do último dia (dia do mês 01-28|29|30|31) para essa semana.
Saída Ex.
COUNT(*) | A data 11 | 07-01-2012 22 | 14-01-2012 123 | 21-01-2012
Ajuda?
Nota: O último dia da semana no meu caso é domingo.
Você precisa usar a função DAYOFWEEK
Se o fim da semana for sábado, qualquer data pode ser transformada em sábado.
Por exemplo, isso calcula o próximo sábado
Isso calcula o próximo domingo (você deve usar a função WEEKDAY em vez disso)
Para uma tabela chamada mytable com uma coluna de data chamada theDate, sua soma seria
Sábado
Domingo
De uma chance !!!
AVISO se você quiser qualquer outro final de semana que não seja sábado e domingo, eu escrevi um algoritmo insano em 22 de setembro de 2011 para calcular qualquer semana começando e terminando em qualquer dia .
Usar
LAST_DAY()
.A documentação está aqui .