sql >> Databasteknik >  >> RDS >> Mysql

Hur man får aktuell veckodata i MySQL

Ibland kan du behöva skaffa aktuella veckoposter eller hämta veckans poster för rapportering och analys. I den här artikeln kommer vi att titta på hur man får aktuell veckodata i MySQL.


Hur får du aktuell veckodata i MySQL

Låt oss säga att du har följande tabell försäljning(id, order_date, summa )

mysql> create table sales(id int, order_date date, amount int);

mysql> insert into sales(id, order_date, amount)
      values(1, '2021-01-24',250),
      (2, '2021-01-25',250),
      (3, '2021-01-26',250),
      (4, '2021-01-27',250),
      (5, '2021-01-28',250),
      (6, '2021-01-29',250),
      (7, '2021-01-30',250),
      (8, '2021-01-31',250),
      (9, '2021-02-01',250);
 
 mysql> select * from sales;
 +------+------------+--------+
 | id   | order_date | amount |
 +------+------------+--------+
 |    1 | 2021-01-24 |    250 |
 |    2 | 2021-01-25 |    250 |
 |    3 | 2021-01-26 |    250 |
 |    4 | 2021-01-27 |    250 |
 |    5 | 2021-01-28 |    250 |
 |    6 | 2021-01-29 |    250 |
 |    7 | 2021-01-30 |    250 |
 |    8 | 2021-01-31 |    250 |
 |    9 | 2021-02-01 |    250 |
 +------+------------+--------+


Hur får du uppgifter om den aktuella veckan i MySQL

Det är väldigt enkelt att få aktuell veckodata i MySQL. Här är SQL-frågan för att få uppgifter om aktuell vecka i MySQL.

mysql> select * 
      from sales 
      where week(order_date)=week(now());
 +------+------------+--------+
 | id   | order_date | amount |
 +------+------------+--------+
 |    8 | 2021-01-31 |    250 |
 |    9 | 2021-02-01 |    250 |
 +------+------------+--------+

I ovanstående fråga använder vi now() funktion för att få aktuellt datum och week() funktion för att få veckonummer för datumvärden. Så vi väljer rader vars order_dates veckonummer är detsamma som veckonummer för dagens dag.


Hur får du data från de senaste 7 dagarna i MySQL

Ibland kan du också behöva få senaste 7 dagars data i MySQL. Här är SQL-frågan för att få data från de senaste 7 dagarna.

mysql> select * 
       from sales 
       where order_date> now() - interval 1 week;
 +------+------------+--------+
 | id   | order_date | amount |
 +------+------------+--------+
 |    3 | 2021-01-26 |    250 |
 |    4 | 2021-01-27 |    250 |
 |    5 | 2021-01-28 |    250 |
 |    6 | 2021-01-29 |    250 |
 |    7 | 2021-01-30 |    250 |
 |    8 | 2021-01-31 |    250 |
 |    9 | 2021-02-01 |    250 |
 +------+------------+--------+

I ovanstående SQL-fråga väljer vi rader vars order_datum faller efter de senaste 7 dagarna. Vi använder nyckelordet INTERVAL för att subtrahera 1 vecka från dagens datum.

Behöver du ett rapporteringsverktyg för MySQL? Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. SQL aritmetiska operatörer

  2. Lös problem med SQL Server-databas som fastnat i misstänkt läge effektivt

  3. Hur man lägger till AM/PM till ett tidsvärde i SQL Server (T-SQL)

  4. Oracle ORA-00979 - inte ett GROUP BY-uttryck