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

MySQL-2つの日付の間のデータベースからデータを選択します

    あなたの問題は、日付の短いバージョンがデフォルトとして深夜を使用することです。したがって、クエリは実際には次のようになります。

    SELECT users.* FROM users 
    WHERE created_at >= '2011-12-01 00:00:00' 
    AND created_at <= '2011-12-06 00:00:00'
    

    これが、10:45のレコードが表示されない理由です。

    次のように変更します:

    SELECT users.* FROM users 
    WHERE created_at >= '2011-12-01' 
    AND created_at <= '2011-12-07'
    

    次を使用することもできます:

    SELECT users.* from users 
    WHERE created_at >= '2011-12-01' 
    AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
    

    これにより、探している同じ間隔のすべてのユーザーが選択されます。

    また、BETWEEN演算子の方が読みやすい場合があります:

    SELECT users.* from users 
    WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));
    


    1. MySQL初心者向けのDevOpsデータベース用語集

    2. 7つのSQLServerソートの内部–パート1

    3. CURRENT_DATEの例– MySQL

    4. SQLiteSHOWTABLESと同等