Một bảng lịch phụ sẽ hoạt động tốt. Bảng lịch đơn giản nhất có thể là một cột ngày tháng.
create table calendar (
cal_date date primary key
);
Bạn có thể sử dụng bảng tính hoặc SQL để điền nó. Một kết nối bên ngoài trên nó sẽ mang lại những ngày tháng không tồn tại trong dữ liệu của bạn. Giới hạn quyền với GRANT và REVOKE, đồng thời sử dụng bất kỳ phương tiện nào cần thiết để đảm bảo rằng những ngày bạn mong đợi sẽ thực sự ở đó. Tôi chạy một báo cáo hàng ngày trên máy chủ của mình để đảm bảo có hàng 'n' và xác minh các ngày sớm nhất và mới nhất.
Trên một số nền tảng, bạn có thể tạo một chuỗi ngày nhanh chóng và sử dụng trực tiếp hoặc trong CTE. PostgreSQL có các chức năng cho điều đó; Tôi không biết liệu MySQL có. Tuy nhiên, chúng không khó viết nếu bạn muốn tự viết.