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

Comment obtenir des enregistrements des dernières 24 heures dans MySQL

Parfois, vous devrez peut-être obtenir les données des dernières 24 heures ou sélectionner des enregistrements pour les dernières 24 heures, à des fins de rapport et d'analyse. Voici comment obtenir des enregistrements des dernières 24 heures dans MySQL. Vous pouvez utiliser cette requête SQL pour obtenir les lignes des dernières 24 heures dans votre base de données.

Comment obtenir des enregistrements des dernières 24 heures dans MySQL

Voici la requête SQL pour obtenir les enregistrements des dernières 24 heures dans MySQL.

Supposons que vous ayez le tableau suivant ventes(date_commande, montant)

mysql> create table sales(order_date datetime, amount int);

mysql> insert into sales(order_date,amount) 
     values('2020-06-07 01:00:00',200),
     ('2020-06-07 02:30:00',350),
     ('2020-06-07 04:40:00',410),
     ('2020-06-07 12:10:00',600),
     ('2020-06-07 15:00:00',300),
     ('2020-06-07 18:55:00',450),
     ('2020-06-07 21:00:00',1200),
     ('2020-06-08 03:00:00',800),
     ('2020-06-08 05:30:00',900),
     ('2020-06-08 07:20:00',100),
     ('2020-06-08 10:10:00',250),
     ('2020-06-08 12:05:00',300),
     ('2020-06-08 13:30:00',200);

mysql> select * from sales;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 01:00:00 |    200 |
| 2020-06-07 02:30:00 |    350 |
| 2020-06-07 04:40:00 |    410 |
| 2020-06-07 12:10:00 |    600 |
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Lecture bonus :comment obtenir le premier enregistrement de chaque groupe dans MySQL

Obtenir les enregistrements des dernières 24 heures dans MySQL

Voici la requête SQL pour obtenir les enregistrements des dernières 24 heures dans MySQL

mysql> select * from sales
       where order_date > now() - interval 24 hour;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Dans la requête SQL ci-dessus, nous utilisons la fonction système MySQL now() pour obtenir la date et l'heure actuelles. Ensuite, nous utilisons la clause INTERVAL pour sélectionner les lignes où order_date tombe dans les dernières 24 heures de la date et de l'heure actuelles.

Lecture bonus :comment obtenir les enregistrements des 15 derniers jours dans MySQL

Au lieu de spécifier l'intervalle en heures, vous pouvez également le mentionner en jour.

mysql> select * from sales
     where order_date > now() - interval 1 day;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Les deux requêtes ci-dessus vous aideront à obtenir les enregistrements des dernières 24 heures.

Lecture bonus :Comment obtenir le dernier enregistrement de chaque groupe dans MySQL

Toutefois, si vous souhaitez sélectionner des lignes pour le jour présent uniquement, vous pouvez utiliser la requête suivante.

mysql> select * from sales
      where date(order_date) = date(now());
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Dans la requête ci-dessus, vous obtiendrez des lignes uniquement à la date actuelle, et non au-delà de 24 heures. Nous utilisons la fonction DATE pour sélectionner uniquement les lignes où la valeur de date de order_date est identique à la valeur de date de la fonction now(), c'est-à-dire 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 !