Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите записи от последните 24 часа в MySQL

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите числови типове от MySQL с помощта на PDO?

  2. Как да променя референтното действие на външния ключ? (поведение)

  3. Използвайте MySQL релационни бази данни във Fedora 14

  4. Не мога да накарам формата си за вход, за да се свържа, да взаимодейства правилно с mySQL базата данни

  5. Въведение в SQL Joins