Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir les données du dernier mois dans MySQL

Parfois, vous devrez peut-être récupérer l'enregistrement du mois dernier ou obtenir des lignes du mois précédent. Voici comment obtenir les données du dernier mois dans MySQL.

Comment obtenir les données du dernier mois dans MySQL

Voici les étapes pour obtenir les données du dernier mois dans MySQL.

Supposons que vous ayez le tableau suivant commandes (id, date_commande, montant) dans MySQL qui contient les montants des commandes quotidiennes.

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

Lecture bonus :comment copier une table dans MySQL

Comment obtenir l'enregistrement du dernier mois dans MySQL

Voici la requête SQL pour obtenir l'enregistrement du dernier mois dans 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 |
+------+------------+--------+

Dans la requête ci-dessus, nous sélectionnons uniquement les enregistrements dont le mois est inférieur d'un mois au mois de la date actuelle. Nous obtenons le nombre de mois de dates en utilisant la fonction MONTH (). Nous obtenons la date actuelle en utilisant la fonction NOW().

Selon nos données, puisque le mois en cours est août, nous obtenons les enregistrements du mois précédent, c'est-à-dire juillet.

Avec un peu de chance, vous pouvez maintenant facilement obtenir les données du dernier mois dans MySQL.

Bonus Read :Comment ajouter une contrainte NOT NULL dans MySQL

De même, si vous souhaitez obtenir des enregistrements pour le dernier mois glissant, c'est-à-dire les 30 derniers jours, voici la requête SQL correspondante.

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

Dans la requête ci-dessus, nous sélectionnons des lignes après un intervalle d'un mois. Nous utilisons la clause INTERVAL et la fonction NOW() pour obtenir la date 1 mois dans le passé, à partir de la date actuelle.

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !