Понякога може да се наложи да получите данни за последните 24 часа или да изберете записи за последните 24 часа, за отчитане и анализ. Ето как да получите записи от последните 24 часа в MySQL. Можете да използвате тази SQL заявка, за да получите редове за последните 24 часа във вашата база данни.
Как да получите записи от последните 24 часа в MySQL
Ето SQL заявката за получаване на записи от последните 24 часа в MySQL.
Да приемем, че имате следната таблица продажби(дата_на_поръчка, сума)
mysql> create table sales(order_date datetime, amount int);
mysql> insert into sales(order_date,amount)
values('2020-06-07 01:00:00',200),
('2020-06-07 02:30:00',350),
('2020-06-07 04:40:00',410),
('2020-06-07 12:10:00',600),
('2020-06-07 15:00:00',300),
('2020-06-07 18:55:00',450),
('2020-06-07 21:00:00',1200),
('2020-06-08 03:00:00',800),
('2020-06-08 05:30:00',900),
('2020-06-08 07:20:00',100),
('2020-06-08 10:10:00',250),
('2020-06-08 12:05:00',300),
('2020-06-08 13:30:00',200);
mysql> select * from sales;
+---------------------+--------+
| order_date | amount |
+---------------------+--------+
| 2020-06-07 01:00:00 | 200 |
| 2020-06-07 02:30:00 | 350 |
| 2020-06-07 04:40:00 | 410 |
| 2020-06-07 12:10:00 | 600 |
| 2020-06-07 15:00:00 | 300 |
| 2020-06-07 18:55:00 | 450 |
| 2020-06-07 21:00:00 | 1200 |
| 2020-06-08 03:00:00 | 800 |
| 2020-06-08 05:30:00 | 900 |
| 2020-06-08 07:20:00 | 100 |
| 2020-06-08 10:10:00 | 250 |
| 2020-06-08 12:05:00 | 300 |
| 2020-06-08 13:30:00 | 200 |
+---------------------+--------+
Бонус четене:Как да получите първи запис във всяка група в MySQL
Вземете записи от последните 24 часа в MySQL
Ето SQL заявката за получаване на записи от последните 24 часа в MySQL
mysql> select * from sales
where order_date > now() - interval 24 hour;
+---------------------+--------+
| order_date | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 | 300 |
| 2020-06-07 18:55:00 | 450 |
| 2020-06-07 21:00:00 | 1200 |
| 2020-06-08 03:00:00 | 800 |
| 2020-06-08 05:30:00 | 900 |
| 2020-06-08 07:20:00 | 100 |
| 2020-06-08 10:10:00 | 250 |
| 2020-06-08 12:05:00 | 300 |
| 2020-06-08 13:30:00 | 200 |
+---------------------+--------+
В горната SQL заявка използваме системна функция MySQL now() за да получите текущата дата и час. След това използваме клауза INTERVAL, за да изберем тези редове, където order_date попада в рамките на последните 24 часа от настоящата дата.
Бонус четене:Как да получите записи от последните 15 дни в MySQL
Вместо да посочвате интервал в часове, можете да го споменете и в ден.
mysql> select * from sales
where order_date > now() - interval 1 day;
+---------------------+--------+
| order_date | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 | 300 |
| 2020-06-07 18:55:00 | 450 |
| 2020-06-07 21:00:00 | 1200 |
| 2020-06-08 03:00:00 | 800 |
| 2020-06-08 05:30:00 | 900 |
| 2020-06-08 07:20:00 | 100 |
| 2020-06-08 10:10:00 | 250 |
| 2020-06-08 12:05:00 | 300 |
| 2020-06-08 13:30:00 | 200 |
+---------------------+--------+
И двете по-горе заявки ще ви помогнат да получите записи от последните 24 часа.
Бонус четене:Как да получите последния запис във всяка група в MySQL
Въпреки това, ако искате да изберете редове само за днешния ден, можете да използвате следната заявка.
mysql> select * from sales
where date(order_date) = date(now());
+---------------------+--------+
| order_date | amount |
+---------------------+--------+
| 2020-06-08 03:00:00 | 800 |
| 2020-06-08 05:30:00 | 900 |
| 2020-06-08 07:20:00 | 100 |
| 2020-06-08 10:10:00 | 250 |
| 2020-06-08 12:05:00 | 300 |
| 2020-06-08 13:30:00 | 200 |
+---------------------+--------+
В горната заявка ще получите редове само с текуща дата, а не за последните 24 часа. Използваме функцията DATE, за да изберем само онези редове, където стойността на датата на order_date е същата като стойността на датата на функцията now(), тоест настоящата дата.
Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!