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

Jak uzyskać rekordy z ostatnich 7 dni w MySQL?

Czasami może być konieczne uzyskanie rekordów z ostatnich 7 dni lub wierszy z ostatnich 7 dni w MySQL. Możesz łatwo uzyskać rekordy z ostatnich 7 dni w MySQL, nawet jeśli nie ma do tego funkcji. Oto zapytanie SQL, aby wybrać rekordy z ostatnich 7 dni.

Jak pobrać rekordy z ostatnich 7 dni w MySQL

Oto kod SQL służący do pobierania rekordów z ostatnich 7 dni w MySQL. Załóżmy, że masz następującą tabelę sprzedaż(data_zamówienia,sprzedaż) który zawiera dzienne dane sprzedaży.

mysql> create table sales(order_date date,sale int);

mysql> insert into sales(order_date, sale)
     values('2020-06-01',237),
     ('2020-06-02',230),
     ('2020-06-03',220),
     ('2020-06-04',210),
     ('2020-06-05',200),
     ('2020-06-06',260),
     ('2020-06-07',270),
     ('2020-06-08',240),
     ('2020-06-09',290),
     ('2020-06-10',230),
     ('2020-06-11',210);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-01 |  237 |
| 2020-06-02 |  230 |
| 2020-06-03 |  220 |
| 2020-06-04 |  210 |
| 2020-06-05 |  200 |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
| 2020-06-11 |  210 |
+------------+------+

Przeczytaj bonus:Jak zdobyć rekordy z ostatnich 30 dni

Jak uzyskać zapisy z ostatnich 7 dni

Oto zapytanie SQL, aby pobrać rekordy z ostatnich 7 dni w MySQL.

mysql> select * from sales
     where order_date > now() - INTERVAL 7 day;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-05 |  200 |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
| 2020-06-11 |  210 |
+------------+------+

W powyższym zapytaniu wybieramy te rekordy, w których data_zamówienia spada po upływie ostatnich 7 dni. Używamy funkcji systemowej now() aby uzyskać najnowszą wartość daty i godziny, i klauzulę INTERVAL, aby obliczyć datę w przeszłości.

Możesz też użyć current_date zamiast now()

mysql> select * from sales
     where order_date > current_date - interval 7 day;

Przeczytaj bonus:Jak uzyskać rekordy między 2 datami w MySQL

Jak uzyskać dane z ostatniego tygodnia

Oto jak uzyskać rekord z ostatniego tygodnia w MySQL

mysql> select * from sales
       where order_date > now() - interval 1 week;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-05 |  200 |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
| 2020-06-11 |  210 |
+------------+------+

Przeczytaj bonus:Jak uzyskać rekordy z ostatnich 24 godzin w MySQL

W powyższym zapytaniu wybieramy wiersze, w których data_zamówienia spada po upływie 1 tygodnia przerwy. Używamy argumentu „1 tydzień” dla klauzuli INTERVAL, zamiast „7 dni”.

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. MySQL, Połącz dwie kolumny

  2. Zapytania MySQL

  3. Zachowaj podziały wierszy z TextArea podczas pisania w MySQL

  4. Objaśnienie struktury MySQL High Availability Framework – część I:Wprowadzenie

  5. Korzystanie z różnych silników pamięci masowej MySQL w projektowaniu baz danych