Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql :sélectionner toutes les données entre deux dates

Vous pouvez utiliser un concept fréquemment appelé "tables de calendrier". Ici est un bon guide sur la façon de créer des tables de calendrier dans 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';

Vous voudrez peut-être créer la table cal au lieu de la sous-sélection.