場合によっては、先月のレコードをフェッチしたり、前月の行を取得したりする必要があります。 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を使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。