場合によっては、先月のレコードをフェッチしたり、前月の行を取得したりする必要があります。 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月のレコードを取得します。
うまくいけば、MySQLで過去1か月のデータを簡単に取得できるようになりました。
ボーナスリード:MySQLにNOTNULL制約を追加する方法
同様に、過去1か月間、つまり過去30日間のレコードを取得する場合は、次のSQLクエリを使用します。
select * from orders where order_date>now() - interval 1 month;
上記のクエリでは、過去1か月の間隔の後に行を選択します。 INTERVAL句とNOW()関数を使用して、現在の日付から1か月前の日付を取得します。
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。