Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Existe a possibilidade no mysql retornar intervalo de uma select, mesmo que não exista aquela data em um registro?
Usando essa query
SELECT count(id) as tt, DATE_FORMAT(datainc, '%y-%m-%d') as dt
FROM tbl
where datainc BETWEEN '2021-01-01' and '2021-01-31'
GROUP BY DATE_FORMAT(datainc, '%y-%m-%d')
ORDER BY YEAR(datainc), MONTH(datainc), DAY(datainc)
ele me retorna apenas os totais das datas existentes, tipo se tenho apenas 2 linhas 01/01/2021 e 11/01/2021... preciso popular uma tabela e tenho duvida se no MySQL ele retornaria 31 linhas informando o count apenas nos dois dias existentes...
Consigo fazer isso no PHP, mas se o MySQL retornasse me pouparia um tempo.select dia, (case when dia between '2020-10-02' and '2020-10-05'
then count(dia) end) as contagem from tbdiario group by dia;
Para evitar os valores nulos, a minha sugestão é essa:
select dia, (case when dia between '2020-10-02' and '2020-10-05'
then count(dia) else "não é da sua conta" end) as contagem
from tbdiario group by dia;

Você gera uma sequencia artificial de data , veja este exemplo ( não achei um para Mysql). https://pt.stackoverflow.com/questions/322203/selecionar-datas-que-não-estão-na-tabela