sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du sidste måneds data i MySQL

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!

  1. Sådan kontrolleres, om en tabel allerede eksisterer, før du opretter den i MySQL

  2. Sådan finder og erstatter du tekst i MySQL-database ved hjælp af SQL

  3. Sådan vælger du sammenligning af to kolonner som én kolonne i Oracle

  4. Deaktiver midlertidigt begrænsninger (MS SQL)