sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du aktuelle ugedata i MySQL

Nogle gange kan det være nødvendigt at hente aktuelle ugeposter eller hente denne uges poster til rapportering og analyse. I denne artikel vil vi se på, hvordan du får aktuelle ugedata i MySQL.


Sådan får du aktuelle ugedata i MySQL

Lad os sige, at du har følgende tabel salg(id, ordre_dato, beløb )

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 |
 +------+------------+--------+


Sådan får du optegnelser over den aktuelle uge i MySQL

Det er meget nemt at få aktuelle ugedata i MySQL. Her er SQL-forespørgslen for at få optegnelser over den aktuelle uge 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 ovenstående forespørgsel bruger vi now() funktion for at få nuværende dato og uge() funktion for at få ugenummer af datoværdier. Så vi vælger rækker, hvis ordre_datos ugenummer er det samme som ugenummeret for dagens dag.


Sådan får du data om de sidste 7 dage i MySQL

Nogle gange kan du også have brug for at få de seneste 7 dages data i MySQL. Her er SQL-forespørgslen for at få data fra de sidste 7 dage.

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 ovenstående SQL-forespørgsel vælger vi rækker, hvis ordre_date falder efter de sidste 7 dage. Vi bruger INTERVAL søgeord til at trække 1 uge fra nuværende dato.

Har du brug for et rapporteringsværktøj til MySQL? Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Forespørgsel på flere databaser på én gang

  2. Introduktion til PL/SQL-pakker i Oracle-databasen

  3. Hvordan flytter jeg en tabel ind i et skema i T-SQL

  4. Rails 4 LIKE-forespørgsel - ActiveRecord tilføjer citater