Понякога може да се наложи да извлечете запис от последния месец или да получите редове от предходния месец. Ето как да получите данни за последния месец в MySQL.
Как да получите данни за последния месец в MySQL
Ето стъпките за получаване на данни за последния месец в MySQL.
Да приемем, че имате следната таблица поръчки(id, order_date, amount) в MySQL, който съдържа дневни суми за поръчки.
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 |
+------+------------+--------+
Бонус четене:Как да копирам таблица в MySQL
Как да получите запис за последния месец в MySQL
Ето SQL заявката за получаване на запис от последния месец в 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 |
+------+------------+--------+
В горната заявка избираме само онези записи, чийто месец е с един по-малък от месеца на текущата дата. Получаваме броя на датите за месец с помощта на функцията MONTH(). Получаваме текущата дата с помощта на функцията NOW().
Според нашите данни, тъй като текущият месец е август, получаваме записите за предходния месец, тоест юли.
Надяваме се, че сега можете лесно да получите данни за последния месец в MySQL.
Бонус за четене:Как да добавите ограничение NOT NULL в MySQL
По същия начин, ако искате да получите записи за миналия месец, тоест последните 30 дни, ето SQL заявката за това.
select * from orders where order_date>now() - interval 1 month;
В горната заявка избираме редове след интервал от миналия 1 месец. Използваме клауза INTERVAL и функция NOW(), за да получим датата 1 месец в миналото, от настоящата дата.
Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!