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

MySQLで過去1か月のデータを取得する方法

    場合によっては、先月のレコードをフェッチしたり、前月の行を取得したりする必要があります。 MySQLで過去1か月のデータを取得する方法は次のとおりです。

    MySQLで過去1か月のデータを取得する方法

    MySQLで過去1か月のデータを取得する手順は次のとおりです。

    次のテーブルがあるとしますorders(id、order_date、amount) 毎日の注文金額を含むMySQLで。

    mysql> create table orders(id int, order_date date, amount int);
    
    mysql> insert into orders(id,order_date, amount)
         values(1,'2020-07-25',250),
         (2,'2020-07-26',350),
         (3,'2020-07-27',200),
         (4,'2020-07-28',150),
         (5,'2020-07-29',350),
         (6,'2020-07-30',300),
         (7,'2020-07-31',250),
         (8,'2020-08-01',550),
         (9,'2020-08-02',350),
         (10,'2020-08-03',250),
         (11,'2020-08-04',200);
    
    mysql> select * from orders;
    +------+------------+--------+
    | id   | order_date | amount |
    +------+------------+--------+
    |    1 | 2020-07-25 |    250 |
    |    2 | 2020-07-26 |    350 |
    |    3 | 2020-07-27 |    200 |
    |    4 | 2020-07-28 |    150 |
    |    5 | 2020-07-29 |    350 |
    |    6 | 2020-07-30 |    300 |
    |    7 | 2020-07-31 |    250 |
    |    8 | 2020-08-01 |    550 |
    |    9 | 2020-08-02 |    350 |
    |   10 | 2020-08-03 |    250 |
    |   11 | 2020-08-04 |    200 |
    +------+------------+--------+
    

    ボーナスリード:MySQLでテーブルをコピーする方法

    MySQLで過去1か月のレコードを取得する方法

    MySQLで過去1か月のレコードを取得するためのSQLクエリは次のとおりです

    mysql> select * from orders
         where month(order_date)=month(now())-1;
    +------+------------+--------+
    | id   | order_date | amount |
    +------+------------+--------+
    |    1 | 2020-07-25 |    250 |
    |    2 | 2020-07-26 |    350 |
    |    3 | 2020-07-27 |    200 |
    |    4 | 2020-07-28 |    150 |
    |    5 | 2020-07-29 |    350 |
    |    6 | 2020-07-30 |    300 |
    |    7 | 2020-07-31 |    250 |
    +------+------------+--------+
    

    上記のクエリでは、月が現在の日付の月より1つ少ないレコードのみを選択します。 MONTH()関数を使用して日付の月数を取得します。 NOW()関数を使用して現在の日付を取得します。

    データによると、今月は8月なので、前月、つまり7月のレコードを取得します。

    うまくいけば、My​​SQLで過去1か月のデータを簡単に取得できるようになりました。

    ボーナスリード:MySQLにNOTNULL制約を追加する方法

    同様に、過去1か月間、つまり過去30日間のレコードを取得する場合は、次のSQLクエリを使用します。

    select * from orders
    where order_date>now() - interval 1 month;
    

    上記のクエリでは、過去1か月の間隔の後に行を選択します。 INTERVAL句とNOW()関数を使用して、現在の日付から1か月前の日付を取得します。

    Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. MySQLでストアドプロシージャをスケジュールする方法

    2. MyBatisを使用してオブジェクトのJavaリストをOracleストアドプロシージャに渡す方法は?

    3. 変数を使用せずにplpgsql関数に整数を返すようにできますか?

    4. MySQLの頻度から十分位数を計算する