Nogle gange skal du muligvis hente sidste måneds rekord eller få rækker fra forrige måned. Sådan får du data om sidste måned i MySQL.
Sådan får du sidste måneds data i MySQL
Her er trinene til at få sidste måneds data i MySQL.
Lad os sige, at du har følgende tabel ordrer(id, ordre_dato, beløb) i MySQL, der indeholder daglige ordrebeløb.
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 |
+------+------------+--------+
Bonus Læs:Sådan kopierer du tabel i MySQL
Sådan får du sidste måneds rekord i MySQL
Her er SQL-forespørgslen for at få sidste måneds rekord i MySQL
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 |
+------+------------+--------+
I ovenstående forespørgsel vælger vi kun de poster, hvis måned er én mindre end den aktuelle dato. Vi opnår månedsantallet af datoer ved hjælp af MONTH()-funktionen. Vi får den aktuelle dato ved hjælp af NOW()-funktionen.
I henhold til vores data, da den nuværende måned er august, får vi rekorderne for den foregående måned, det vil sige juli.
Forhåbentlig kan du nu nemt få sidste måneds data i MySQL.
Bonus Læs:Sådan tilføjes NOT NULL-begrænsning i MySQL
Tilsvarende, hvis du ønsker at få optegnelser for den seneste måneds rullende, det vil sige de sidste 30 dage, så er her SQL-forespørgslen til det.
select * from orders where order_date>now() - interval 1 month;
I ovenstående forespørgsel vælger vi rækker efter sidste 1 måneds interval. Vi bruger INTERVAL-sætning og NOW()-funktionen til at få datoen 1 måned i fortiden, fra nuværende dato.
Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!