Полезно е да получите записи за последния 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!