Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać rekordy z ostatnich 24 godzin w MySQL?

Czasami może być konieczne pobranie danych z ostatnich 24 godzin lub wybranie rekordów z ostatnich 24 godzin w celu raportowania i analizy. Oto jak uzyskać rekordy z ostatnich 24 godzin w MySQL. Możesz użyć tego zapytania SQL, aby pobrać wiersze z ostatnich 24 godzin w swojej bazie danych.

Jak uzyskać rekordy z ostatnich 24 godzin w MySQL

Oto zapytanie SQL, aby uzyskać rekordy z ostatnich 24 godzin w MySQL.

Załóżmy, że masz następującą tabelę sprzedaż(data_zamówienia, kwota)

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

Przeczytaj bonus:Jak zdobyć pierwszy rekord w każdej grupie w MySQL

Pobierz rekordy z ostatnich 24 godzin w MySQL

Oto zapytanie SQL, aby pobrać rekordy z ostatnich 24 godzin w 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 |
+---------------------+--------+

W powyższym zapytaniu SQL używamy funkcji systemowej MySQL now() aby uzyskać aktualną datę i godzinę. Następnie używamy klauzuli INTERVAL, aby wybrać te wiersze, w których data_zamówienia przypada w ciągu ostatnich 24 godzin od aktualnej daty i godziny.

Przeczytaj bonus:Jak uzyskać rekordy z ostatnich 15 dni w MySQL

Zamiast określać interwał w godzinach, możesz również podać go w ciągu dnia.

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 powyższe zapytania pomogą Ci uzyskać zapisy z ostatnich 24 godzin.

Przeczytaj bonus:Jak uzyskać ostatni rekord w każdej grupie w MySQL

Jeśli jednak chcesz wybrać wiersze tylko dla dnia bieżącego, możesz użyć następującego zapytania.

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

W powyższym zapytaniu otrzymasz wiersze tylko z aktualną datą, a nie z ostatnich 24 godzin. Używamy funkcji DATE, aby wybrać tylko te wiersze, w których wartość daty w order_date jest taka sama jak wartość daty w funkcji now(), czyli data bieżąca.

Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wiele instrukcji INSERT mysql w jednym zapytaniu php

  2. SYSDATE() Przykłady – MySQL

  3. CodeIgniter:Nie można połączyć się z serwerem bazy danych przy użyciu dostarczonych ustawień Komunikat o błędzie

  4. Zapytanie SQL:usunąć wszystkie rekordy z tabeli z wyjątkiem ostatniego N?

  5. Jak korzystać z JDBC do łączenia bazy danych MySql