Это может помочь вам:
create table your_table (a_date date not null);
insert into your_table values (date(now()-interval 0 day));
insert into your_table values (date(now()-interval 1 day));
insert into your_table values (date(now()-interval 2 day));
insert into your_table values (date(now()-interval 3 day));
insert into your_table values (date(now()-interval 5 day));
insert into your_table values (date(now()-interval 6 day));
insert into your_table values (date(now()-interval 9 day));
insert into your_table values (date(now()-interval 10 day));
insert into your_table values (date(now()-interval 50 day));
insert into your_table values (date(now()-interval 60 day));
insert into your_table values (date(now()-interval 70 day));
insert into your_table values (date(now()-interval 80 day));
insert into your_table values (date(now()-interval 90 day));
select a_date,ifnull(datediff(next_date ,a_date)-1,0) as number_of_days_missing_after_date
from
(
select dt.a_date,
(select min(a_date) from your_table dtp where dtp.a_date > dt.a_date and dtp.a_date >= date(now()-interval 100 day)) as next_date
from
(select a_date
from your_table
union select date(now()-interval 100 day)) dt
where dt.a_date >= date(now()-interval 100 day)
) a;
Должен дать вам указание относительно того, какие даты отсутствуют.
Я создал таблицу your_table вместо таблицы, которую вы планируете проверить на наличие пропущенных дат (чтобы я мог более наглядно проиллюстрировать вам ваш пример).
Возможно, единственная проблема этого решения заключается в том, что оно не даст вам список пропущенных дат - хотя их можно легко получить, посмотрев (в примере) столбец a_date и количество дней, пропущенных после a_date.
Надеюсь, это поможет и удачи!