Dobrze sprawdzi się pomocnicza tabela kalendarza. Najprostsza możliwa tabela kalendarza to pojedyncza kolumna dat.
create table calendar (
cal_date date primary key
);
Możesz użyć arkusza kalkulacyjnego lub SQL, aby go wypełnić. Zewnętrzne sprzężenie na nim przyniesie daty, które nie istnieją w Twoich danych. Ogranicz uprawnienia za pomocą GRANT i REVOKE i użyj wszelkich niezbędnych środków, aby upewnić się, że daty, których spodziewasz się tam, rzeczywiście tam są. Uruchamiam codzienny raport na moim serwerze, który upewnia się, że jest „n” wierszy i weryfikuje najwcześniejsze i najpóźniejsze daty.
Na niektórych platformach możesz generować serię dat w locie i używać ich bezpośrednio lub w CTE. PostgreSQL ma do tego funkcje; Nie wiem, czy MySQL tak. Nie są one trudne do napisania, jeśli chcesz rzucić własne.