Někdy možná budete muset načíst záznam z minulého měsíce nebo získat řádky z předchozího měsíce. Zde je návod, jak získat data za poslední měsíc v MySQL.
Jak získat data za poslední měsíc v MySQL
Zde jsou kroky k získání dat za poslední měsíc v MySQL.
Řekněme, že máte následující tabulku objednávky(id, datum_objednávky, částka) v MySQL, která obsahuje denní částky objednávek.
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 | +------+------------+--------+
Bonusové čtení:Jak kopírovat tabulku v MySQL
Jak získat záznam za poslední měsíc v MySQL
Zde je dotaz SQL pro získání záznamu za poslední měsíc v 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 | +------+------------+--------+
Ve výše uvedeném dotazu vybíráme pouze ty záznamy, jejichž měsíc je o jeden menší než měsíc aktuálního data. Pomocí funkce MONTH() získáme měsíční počet dat. Aktuální datum získáme pomocí funkce NOW().
Podle našich údajů, protože aktuální měsíc je srpen, získáváme záznamy za předchozí měsíc, tedy červenec.
Doufejme, že nyní můžete snadno získat data za poslední měsíc v MySQL.
Bonusové čtení:Jak přidat omezení NOT NULL do MySQL
Podobně, pokud chcete získat záznamy za poslední měsíc klouzavě, to znamená za posledních 30 dní, zde je pro to SQL dotaz.
select * from orders where order_date>now() - interval 1 month;
Ve výše uvedeném dotazu vybíráme řádky po intervalu uplynulého 1 měsíce. K získání data 1 měsíc v minulosti od současného data používáme klauzuli INTERVAL a funkci NOW().
Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!