Il est utile d'obtenir les enregistrements de la dernière heure ou de récupérer les lignes de la dernière heure pour les rapports et l'analyse. Dans cet article, nous verrons comment obtenir les données de la dernière heure dans MySQL.
Comment obtenir les données de la dernière heure dans MySQL
Il est très facile de sélectionner les données de la dernière heure dans MySQL à l'aide de la clause INTERVAL. Disons que vous avez le tableau suivant ventes(id, date_commande, montant) .
mysql> create table sales( id int, order_date datetime, amount int); mysql> insert into sales(id, order_date, amount) values(1, '2021-02-02 08:15:00',250), (2, '2021-02-02 08:30:00',150), (3, '2021-02-02 08:55:00',200), (4, '2021-02-02 09:15:00',125), (5, '2021-02-02 09:30:00',200), (6, '2021-02-02 09:45:00',250); mysql> select * from sales; +------+---------------------+--------+ | id | order_date | amount | +------+---------------------+--------+ | 1 | 2021-02-02 08:15:00 | 250 | | 2 | 2021-02-02 08:30:00 | 150 | | 3 | 2021-02-02 08:55:00 | 200 | | 4 | 2021-02-02 09:15:00 | 125 | | 5 | 2021-02-02 09:30:00 | 200 | | 6 | 2021-02-02 09:45:00 | 250 | +------+---------------------+--------+
Voici le SQL pour afficher la dernière heure en utilisant now() fonction.
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2021-02-02 09:48:27 | +---------------------+
Voici le SQL pour obtenir les données de la dernière heure dans MySQL.
mysql> select * from sales where order_date > now() - interval 1 hour; +------+---------------------+--------+ | id | order_date | amount | +------+---------------------+--------+ | 3 | 2021-02-02 08:55:00 | 200 | | 4 | 2021-02-02 09:15:00 | 125 | | 5 | 2021-02-02 09:30:00 | 200 | | 6 | 2021-02-02 09:45:00 | 250 | +------+---------------------+--------+
Dans la requête ci-dessus, nous sélectionnons uniquement les lignes dont order_date tombe dans l'intervalle d'une heure passé. Nous utilisons la clause INTERVAL pour soustraire facilement un intervalle d'une heure de l'heure actuelle obtenue en utilisant now() fonction.
Comment obtenir les données horaires actuelles dans MySQL
Parfois, vous devrez peut-être obtenir des enregistrements de l'heure actuelle dans MySQL. Voici la requête SQL pour récupérer les données de l'heure actuelle.
mysql> select * from sales where date(order_date)=date(now()) and hour(order_date)=hour(now()); +------+---------------------+--------+ | id | order_date | amount | +------+---------------------+--------+ | 4 | 2021-02-02 09:15:00 | 250 | | 5 | 2021-02-02 09:30:00 | 250 | | 6 | 2021-02-02 09:45:00 | 250 | +------+---------------------+--------+
Dans la requête SQL ci-dessus, nous sélectionnons uniquement les enregistrements dont la order_date les valeurs DATE et HOUR de la colonne sont identiques à celles de la date et de l'heure actuelles. Nous utilisons les fonctions DATE et HOUR pour obtenir des valeurs de date et d'heure à partir de valeurs datetime.
Besoin d'un outil de reporting pour MySQL ? Ubiq permet de visualiser facilement les données en quelques minutes et de les surveiller dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !