Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter dados da semana atual no MySQL


Às vezes, você pode precisar obter os registros da semana atual ou buscar os registros desta semana para relatórios e análises. Neste artigo, veremos como obter os dados da semana atual no MySQL.



Como obter dados da semana atual no MySQL


Digamos que você tenha a seguinte tabela sales(id, order_date, amount )
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 |
 +------+------------+--------+



Como obter registros da semana atual no MySQL


É muito fácil obter dados semanais atuais no MySQL. Aqui está a consulta SQL para obter registros da semana atual no 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 |
 +------+------------+--------+

Na consulta acima, usamos now() função para obter a data atual e week() função para obter o número da semana de valores de data. Portanto, selecionamos linhas cujo número da semana de order_date é igual ao número da semana do dia de hoje.



Como obter dados dos últimos 7 dias no MySQL


Às vezes, você também pode precisar obter os dados dos últimos 7 dias no MySQL. Aqui está a consulta SQL para obter os dados dos últimos 7 dias.
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 |
 +------+------------+--------+

Na consulta SQL acima, selecionamos linhas cujo order_date cai após os últimos 7 dias. Usamos a palavra-chave INTERVAL para subtrair 1 semana da data atual.



Precisa de uma ferramenta de relatório para MySQL? O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!