Czasami może być konieczne pobranie rekordu z ostatniego miesiąca lub wierszy z poprzedniego miesiąca. Oto jak uzyskać dane z ostatniego miesiąca w MySQL.
Jak uzyskać dane z ostatniego miesiąca w MySQL
Oto kroki, aby uzyskać dane z ostatniego miesiąca w MySQL.
Załóżmy, że masz następującą tabelę zamówienia(id, data_zamówienia, kwota) w MySQL, który zawiera dzienne kwoty zamówień.
mysql> create table orders(id int, order_date date, amount int);
mysql> insert into orders(id,order_date, amount)
values(1,'2020-07-25',250),
(2,'2020-07-26',350),
(3,'2020-07-27',200),
(4,'2020-07-28',150),
(5,'2020-07-29',350),
(6,'2020-07-30',300),
(7,'2020-07-31',250),
(8,'2020-08-01',550),
(9,'2020-08-02',350),
(10,'2020-08-03',250),
(11,'2020-08-04',200);
mysql> select * from orders;
+------+------------+--------+
| id | order_date | amount |
+------+------------+--------+
| 1 | 2020-07-25 | 250 |
| 2 | 2020-07-26 | 350 |
| 3 | 2020-07-27 | 200 |
| 4 | 2020-07-28 | 150 |
| 5 | 2020-07-29 | 350 |
| 6 | 2020-07-30 | 300 |
| 7 | 2020-07-31 | 250 |
| 8 | 2020-08-01 | 550 |
| 9 | 2020-08-02 | 350 |
| 10 | 2020-08-03 | 250 |
| 11 | 2020-08-04 | 200 |
+------+------------+--------+
Przeczytaj bonus:Jak skopiować tabelę do MySQL
Jak uzyskać rekord z ostatniego miesiąca w MySQL
Oto zapytanie SQL, aby uzyskać rekord z ostatniego miesiąca w MySQL
mysql> select * from orders
where month(order_date)=month(now())-1;
+------+------------+--------+
| id | order_date | amount |
+------+------------+--------+
| 1 | 2020-07-25 | 250 |
| 2 | 2020-07-26 | 350 |
| 3 | 2020-07-27 | 200 |
| 4 | 2020-07-28 | 150 |
| 5 | 2020-07-29 | 350 |
| 6 | 2020-07-30 | 300 |
| 7 | 2020-07-31 | 250 |
+------+------------+--------+
W powyższym zapytaniu wybieramy tylko te rekordy, których miesiąc jest o jeden mniejszy od miesiąca aktualnej daty. Miesięczną liczbę dat uzyskujemy za pomocą funkcji MONTH(). Bieżącą datę uzyskujemy za pomocą funkcji NOW().
Zgodnie z naszymi danymi, ponieważ bieżącym miesiącem jest sierpień, otrzymujemy rekordy z poprzedniego miesiąca, czyli lipca.
Mamy nadzieję, że teraz możesz łatwo uzyskać dane z ostatniego miesiąca w MySQL.
Przeczytaj bonus:Jak dodać ograniczenie NOT NULL w MySQL
Podobnie, jeśli chcesz uzyskać rekordy z ostatniego miesiąca, czyli z ostatnich 30 dni, oto zapytanie SQL.
select * from orders where order_date>now() - interval 1 month;
W powyższym zapytaniu wybieramy wiersze po upływie ostatniego miesiąca. Używamy klauzuli INTERVAL i funkcji NOW(), aby uzyskać datę 1 miesiąc w przeszłości, od daty bieżącej.
Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!