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

Comment obtenir des enregistrements des 30 derniers jours

Parfois, vous devrez peut-être obtenir des lignes des 30 derniers jours ou obtenir les données du dernier mois dans MySQL. Il est facile d'obtenir des enregistrements des 30 derniers jours dans MySQL même s'il n'y a pas de fonction intégrée pour cela. Voici la requête SQL pour sélectionner les enregistrements des 30 derniers jours.

Comment obtenir les enregistrements des 30 derniers jours dans MySQL

Voici le SQL pour obtenir les enregistrements des 30 derniers jours. Disons que vous avez le tableau suivant sales(order_date, sale) qui contient des données de ventes quotidiennes.

mysql> create table sales(order_date date,sale int);

mysql> insert into sales(order_date, sale)
     values('2020-05-04',230),
     ('2020-05-05',200),
     ('2020-05-06',210),
     ('2020-05-07',180),
     ('2020-05-08',220),
     ('2020-05-09',230),
     ('2020-05-10',220),
     ('2020-05-11',225),
     ('2020-05-12',200),
     ('2020-05-13',210),
     ('2020-05-14',190),
     ('2020-05-15',200),
     ('2020-05-16',220),
     ('2020-05-17',210),
     ('2020-05-18',190),
     ('2020-05-19',180),
     ('2020-05-20',250),
     ('2020-05-21',240),
     ('2020-05-22',245),
     ('2020-05-23',230),
     ('2020-05-24',220),
     ('2020-05-25',210),
     ('2020-05-26',130),
     ('2020-05-27',200),
     ('2020-05-28',210),
     ('2020-05-29',221),
     ('2020-05-30',235),
     ('2020-05-31',233),
     ('2020-06-01',237),
     ('2020-06-02',230),
     ('2020-06-03',220),
     ('2020-06-04',210),
     ('2020-06-05',200),
     ('2020-06-06',260),
     ('2020-06-07',270),
     ('2020-06-08',240),
     ('2020-06-09',290),
     ('2020-06-10',230);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-04 |  230 |
| 2020-05-05 |  200 |
| 2020-05-06 |  210 |
| 2020-05-07 |  180 |
| 2020-05-08 |  220 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Lecture bonus :comment obtenir des enregistrements entre 2 dates dans MySQL

Comment obtenir les enregistrements des 30 derniers jours

Voici la requête SQL pour obtenir les enregistrements des 30 derniers jours dans MySQL.

mysql> select * from sales
     where order_date > now() - INTERVAL 30 day;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
| 2020-05-14 |  190 |
|        ... |  ... | 
|        ... |  ... | 
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Dans la requête ci-dessus, nous sélectionnons les enregistrements où order_date tombe après un intervalle passé de 30 jours. Nous utilisons la fonction système now() pour obtenir la dernière valeur datetime et la clause INTERVAL pour calculer une date de 30 jours dans le passé.

Vous pouvez également utiliser current_date au lieu de maintenant()

mysql> select * from sales
     where order_date > current_date - interval 30 day;

Lecture bonus :comment obtenir des enregistrements des dernières 24 heures dans MySQL

Comment obtenir les données du dernier mois

Voici la requête SQL pour obtenir les enregistrements du dernier mois dans MySQL.

mysql> select * from sales
     where order_date > current_date - interval 1 month;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-11 |  225 |
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Lecture bonus :Comment obtenir les enregistrements du mois en cours dans MySQL

Dans la requête ci-dessus, nous sélectionnons les lignes où order_date tombe après un intervalle d'un mois. Nous utilisons l'argument '1 mois' pour la clause INTERVAL, au lieu d'utiliser '30 jours'

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 !