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

Comment obtenir des enregistrements des 7 derniers jours dans MySQL

Parfois, vous devrez peut-être obtenir les enregistrements des 7 derniers jours ou obtenir les lignes des 7 derniers jours dans MySQL. Vous pouvez facilement obtenir des enregistrements des 7 derniers jours dans MySQL, même s'il n'y a pas de fonction pour cela. Voici la requête SQL pour sélectionner les enregistrements des 7 derniers jours.

Comment obtenir les enregistrements des 7 derniers jours dans MySQL

Voici le SQL pour obtenir les enregistrements des 7 derniers jours dans MySQL. 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-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),
     ('2020-06-11',210);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 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 |
| 2020-06-11 |  210 |
+------------+------+

Lecture bonus :comment obtenir des enregistrements des 30 derniers jours

Comment obtenir les enregistrements des 7 derniers jours

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

mysql> select * from sales
     where order_date > now() - INTERVAL 7 day;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-05 |  200 |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
| 2020-06-11 |  210 |
+------------+------+

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

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

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

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

Comment obtenir les données de la dernière semaine

Voici comment obtenir l'enregistrement de la dernière semaine dans MySQL

mysql> select * from sales
       where order_date > now() - interval 1 week;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-05 |  200 |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
| 2020-06-11 |  210 |
+------------+------+

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

Dans la requête ci-dessus, nous sélectionnons les lignes où order_date tombe après 1 semaine d'intervalle. Nous utilisons l'argument "1 semaine" pour la clause INTERVAL, au lieu d'utiliser "7 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 !