sql >> Database >  >> RDS >> Mysql

Hoe u gegevens van de laatste maand in MySQL kunt krijgen

Soms moet u het record van de vorige maand ophalen of rijen van de vorige maand ophalen. Hier leest u hoe u gegevens van de afgelopen maand in MySQL kunt krijgen.

Hoe u gegevens van de afgelopen maand in MySQL kunt krijgen

Dit zijn de stappen om gegevens van de afgelopen maand in MySQL te krijgen.

Stel dat u de volgende tabel orders(id, order_date, hoeveelheid) . heeft in MySQL die dagelijkse bestelbedragen bevat.

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 lezen:tabel kopiëren in MySQL

Hoe u een record van een maand in MySQL kunt krijgen

Hier is de SQL-query om een ​​record van een maand in MySQL te krijgen

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 |
+------+------------+--------+

In de bovenstaande zoekopdracht selecteren we alleen die records waarvan de maand één minder is dan de maand van de huidige datum. We verkrijgen het maandaantal datums met de functie MAAND(). We verkrijgen de huidige datum met behulp van de NOW()-functie.

Volgens onze gegevens krijgen we, aangezien de huidige maand augustus is, de records van de vorige maand, dat wil zeggen juli.

Hopelijk kun je nu gemakkelijk gegevens van de laatste maand in MySQL krijgen.

Bonus Lezen:Hoe voeg ik een NOT NULL-beperking toe in MySQL

Evenzo, als u records van de afgelopen een maand wilt laten rollen, dat wil zeggen de afgelopen 30 dagen, dan is hier de SQL-query ervoor.

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

In de bovenstaande zoekopdracht selecteren we rijen na een interval van de afgelopen 1 maand. We gebruiken de INTERVAL-clausule en de NOW()-functie om de datum 1 maand in het verleden, vanaf de huidige datum te verkrijgen.

Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. MariaDB 10.3-replicatie instellen met Ansible en Vagrant

  2. De Oracle-instantie afsluiten en starten

  3. Hoe print je het resultaat van een PostgreSQL-query in CSV- of TSV-indeling vanaf de opdrachtregel?

  4. Oracle CLOB kan niet meer dan 4000 tekens invoegen?