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

Mysql:seleccione todos los datos entre dos fechas

Puede utilizar un concepto al que se hace referencia con frecuencia como "tablas de calendario". Aquí es una buena guía sobre cómo crear tablas de calendario en MySql:

-- create some infrastructure
CREATE TABLE ints (i INTEGER);
INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);

-- only works for 100 days, add more ints joins for more
SELECT cal.date, tbl.data
FROM (
    SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date
    FROM ints a JOIN ints b
    ORDER BY a.i * 10 + b.i
) cal LEFT JOIN tbl ON cal.date = tbl.date
WHERE cal.date BETWEEN '2009-06-25' AND '2009-07-01';

Es posible que desee crear la tabla cal en lugar de la subselección.