sql >> データベース >  >> RDS >> Mysql

Mysql:2つの日付の間のすべてのデータを選択します

    「カレンダーテーブル」と呼ばれることが多い概念を使用できます。 こちら 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';
    

    テーブルcalを作成することをお勧めします 副選択の代わりに。



    1. すべてのテーブル、ストアドプロシージャ、トリガー、制約、およびすべての依存関係を1つのSQLステートメントにドロップします

    2. MySQLで今日以上の日時

    3. MariaDB CURRENT_USER()の説明

    4. AWSPostgresRDSテーブルをAWSS3にエクスポートする