sql >> Base de Datos >  >> RDS >> Mysql

Cómo obtener datos de la última hora en MySQL

Es útil obtener registros de la última hora o recuperar filas de la última hora para informes y análisis. En este artículo, veremos cómo obtener los datos de la última hora en MySQL.


Cómo obtener datos de la última hora en MySQL

Es muy fácil seleccionar los datos de la última hora en MySQL usando la cláusula INTERVALO. Digamos que tiene la siguiente tabla ventas (id, order_date, cantidad) .

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

Aquí está el SQL para mostrar la hora más reciente usando ahora() función.

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

Aquí está el SQL para obtener los datos de la última hora en 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 |
 +------+---------------------+--------+

En la consulta anterior, seleccionamos solo aquellas filas cuya order_date cae dentro del último intervalo de 1 hora. Usamos la cláusula INTERVAL para restar fácilmente un intervalo de 1 hora del tiempo actual obtenido usando now() función.


Cómo obtener datos de la hora actual en MySQL

A veces, es posible que necesite obtener registros de la hora actual en MySQL. Aquí está la consulta SQL para recuperar los datos de la hora actual.

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

En la consulta SQL anterior, seleccionamos solo aquellos registros cuya order_date Los valores de FECHA y HORA de la columna son los mismos que los de la fecha y hora actual. Usamos las funciones FECHA y HORA para obtener valores de fecha y hora a partir de valores de fecha y hora.

¿Necesita una herramienta de informes para MySQL? Ubiq facilita la visualización de datos en minutos y el monitoreo en paneles en tiempo real. ¡Pruébalo hoy!