sql >> Databáze >  >> RDS >> Mysql

Jak získat záznamy z posledních 24 hodin v MySQL

Někdy může být nutné získat data za posledních 24 hodin nebo vybrat záznamy za posledních 24 hodin pro vytváření zpráv a analýzu. Zde je návod, jak získat záznamy za posledních 24 hodin v MySQL. Tento SQL dotaz můžete použít k získání řádků za posledních 24 hodin ve vaší databázi.

Jak získat záznamy za posledních 24 hodin v MySQL

Zde je dotaz SQL pro získání záznamů za posledních 24 hodin v MySQL.

Řekněme, že máte následující tabulku prodej (datum_objednávky, částka)

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

Bonusové čtení:Jak získat první záznam v každé skupině v MySQL

Získejte záznamy za posledních 24 hodin v MySQL

Zde je dotaz SQL pro získání záznamů za posledních 24 hodin v 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 |
+---------------------+--------+

Ve výše uvedeném SQL dotazu používáme systémovou funkci MySQL now() získat aktuální datum a čas. Potom použijeme klauzuli INTERVAL k výběru těch řádků, kde je datum_objednávky spadá do posledních 24 hodin od aktuálního data.

Bonusové čtení:Jak získat záznamy za posledních 15 dní v MySQL

Místo zadání intervalu v hodinách jej můžete uvést také v den.

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

Oba výše uvedené dotazy vám pomohou získat záznamy za posledních 24 hodin.

Bonusové čtení:Jak získat poslední záznam v každé skupině v MySQL

Pokud však chcete vybrat řádky pouze pro současnost, můžete použít následující dotaz.

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

Ve výše uvedeném dotazu získáte řádky pouze s aktuálním datem, nikoli za posledních 24 hodin. Funkci DATE používáme k výběru pouze těch řádků, kde je hodnota data v order_date stejná jako hodnota data funkce now(), tedy aktuální datum.

Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Jak databáze podporují podniky elektronického obchodu

  2. Odemknutí výhod programu certifikovaných partnerů MariaDB

  3. Chyba syntaxe na konci vstupu v PostgreSQL

  4. Spouštěč aktualizace SQL pouze při změně sloupce