Когато имате нужда от нещо подобно от страна на сървъра, обикновено създавате таблица, която съдържа всички възможни дати между две точки във времето и след това ляво се присъединявате към тази таблица с резултатите от заявката. Нещо като това:
create procedure sp1(d1 date, d2 date)
declare d datetime;
create temporary table foo (d date not null);
set d = d1
while d <= d2 do
insert into foo (d) values (d)
set d = date_add(d, interval 1 day)
end while
select foo.d, count(date)
from foo left join table on foo.d = table.date
group by foo.d order by foo.d asc;
drop temporary table foo;
end procedure
В този конкретен случай би било по-добре да поставите малка проверка от страна на клиента, ако текущата дата не е previos+1, поставете някои допълнителни низове.