Понякога може да се наложи да извлечете запис от последния месец или да получите редове от предходния месец. Ето как да получите данни за последния месец в 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!