Полезно е да получите записи за последния 1 час или да извлечете последните 1 час редове за отчитане и анализ. В тази статия ще разгледаме как да получите данни за последния 1 час в MySQL.
Как да получите данни за последния 1 час в MySQL
Много е лесно да изберете данни от последния 1 час в MySQL с помощта на клауза INTERVAL. Да кажем, че имате следната таблица 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 |
+------+---------------------+--------+ Ето SQL за показване на последното време с помощта на now() функция.
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2021-02-02 09:48:27 | +---------------------+
Ето SQL за получаване на данни за последния 1 час в 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 |
+------+---------------------+--------+ В горната заявка избираме само онези редове, чиято order_date попада в интервала от последния 1 час. Използваме клауза INTERVAL, за да извадим лесно интервал от 1 час от текущото време, получено с помощта на now() функция.
Как да получите текущи данни за час в MySQL
Понякога може да се наложи да получите записи за текущия час в MySQL. Ето SQL заявката за извличане на текущи данни за час.
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 |
+------+---------------------+--------+ В горната SQL заявка избираме само онези записи, чиито order_date Стойностите DATE и HOUR на колоната са същите като тези на настоящата дата и час. Използваме функции DATE и HOUR, за да получим стойности за дата и час от стойности за дата и час.
Нуждаете се от инструмент за отчитане за MySQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!