sql >> Databasteknik >  >> RDS >> Mysql

Hur man får senaste månadsdata i MySQL

Ibland kan du behöva hämta senaste månadsrekord eller få rader från föregående månad. Så här får du senaste månadsdata i MySQL.

Hur får du senaste månadsdata i MySQL

Här är stegen för att få senaste månadsdata i MySQL.

Låt oss säga att du har följande tabell order(id, order_date, summa) i MySQL som innehåller dagliga orderbelopp.

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:Hur man kopierar tabell i MySQL

Hur får du senaste månadsrekord i MySQL

Här är SQL-frågan för att få senaste månadsrekord 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 ovanstående fråga väljer vi endast de poster vars månad är en mindre än månaden för aktuellt datum. Vi får månadsnummer för datum med MONTH()-funktionen. Vi får aktuellt datum med hjälp av NOW()-funktionen.

Enligt våra uppgifter, eftersom den aktuella månaden är augusti, får vi uppgifterna för föregående månad, det vill säga juli.

Förhoppningsvis kan du nu enkelt få senaste månadsdata i MySQL.

Bonus Läs:Hur man lägger till NOT NULL-begränsning i MySQL

På samma sätt, om du vill få poster för den senaste månaden, det vill säga de senaste 30 dagarna, så är här SQL-frågan för det.

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

I ovanstående fråga väljer vi rader efter det senaste 1 månadsintervallet. Vi använder INTERVAL-satsen och NOW()-funktionen för att få datumet 1 månad i det förflutna, från nuvarande datum.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Återkomsten av XFS på Linux

  2. Effektiva ISNUMERIC()-ersättningar på SQL Server?

  3. En översikt av logisk replikering i PostgreSQL

  4. Hur man visar ett datum som iso 8601-format med PHP