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ś!