Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erhalten Sie die Daten der letzten 1 Stunde in MySQL

Es ist nützlich, Aufzeichnungen der letzten 1 Stunde oder Zeilen der letzten 1 Stunde für Berichte und Analysen abzurufen. In diesem Artikel werden wir uns ansehen, wie man Daten der letzten 1 Stunde in MySQL erhält.


So erhalten Sie die Daten der letzten 1 Stunde in MySQL

Es ist sehr einfach, Daten der letzten 1 Stunde in MySQL mit der INTERVAL-Klausel auszuwählen. Nehmen wir an, Sie haben die folgende Tabelle sales(id, order_date, amount) .

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

Hier ist die SQL, um die letzte Zeit mit now() anzuzeigen Funktion.

mysql> select now();
 +---------------------+
 | now()               |
 +---------------------+
 | 2021-02-02 09:48:27 |
 +---------------------+

Hier ist die SQL, um die Daten der letzten 1 Stunde in MySQL abzurufen.

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

In der obigen Abfrage wählen wir nur die Zeilen aus, deren order_date fällt innerhalb des letzten 1-Stunden-Intervalls. Wir verwenden die INTERVAL-Klausel, um einfach ein 1-Stunden-Intervall von der aktuellen Zeit zu subtrahieren, die wir mit now() erhalten haben Funktion.


So erhalten Sie aktuelle Stundendaten in MySQL

Manchmal müssen Sie möglicherweise Aufzeichnungen über die aktuelle Stunde in MySQL abrufen. Hier ist die SQL-Abfrage zum Abrufen der aktuellen Stundendaten.

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

In der obigen SQL-Abfrage wählen wir nur die Datensätze aus, deren order_date Die DATE- und HOUR-Werte der Spalte sind dieselben wie die der aktuellen datetime. Wir verwenden DATE- und HOUR-Funktionen, um Datums- und Stundenwerte aus datetime-Werten zu erhalten.

Benötigen Sie ein Reporting-Tool für MySQL? Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!