sql >> Base de Datos >  >> RDS >> Mysql

Genere datos para un rango de fechas, incluidas aquellas que no están presentes en los datos

Una mesa de calendario auxiliar funcionará bien. La tabla de calendario más simple posible es una sola columna de fechas.

create table calendar (
    cal_date date primary key
);

Puede usar una hoja de cálculo o SQL para completarlo. Una combinación externa traerá las fechas que no existen en sus datos. Limite los permisos con GRANT y REVOKE, y use cualquier medio necesario para asegurarse de que las fechas que espera estar allí estén realmente allí. Ejecuto un informe diario en mi servidor que se asegura de que haya 'n' filas y verifique las fechas más tempranas y más recientes.

En algunas plataformas, puede generar una serie de fechas sobre la marcha y usarlas directamente o en un CTE. PostgreSQL tiene funciones para eso; No sé si MySQL lo hace. Sin embargo, no son difíciles de escribir, si quieres rodar los tuyos propios.