Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafael cardoso developer

[Resolvido] Fazer um select da semana passada inteira

Recommended Posts

Olá pessoal, saudações a todos.

Sempre venho aqui no fórum pesquisar algumas coisas mas dessa vez não encontrei o que estou procurando (nem aqui nem no Google).

É o seguinte, eu preciso fazer um select que me retorne a semana passada inteira, por exemplo, hoje é dia 29/09/2011, então se o select fosse feito hoje, ele precisa retornar os registros do dia 18/09/2011 até o dia 24/09/2011.

Mas tem um porém, se o select fosse feito no dia 07/09/2011, ele teria que retornar apenas os registros do dia 01/09/2011 até o dia 03/09/2011.

entenderam a lógica da coisa?

 

Um professor meu tentou me ajudar, ele me passou um SQL para este select em postgreSQL

vejam:

 

select * from tabela where
   data >= (current_date - interval '1 week')::date - to_char(current_date, 'ID')::integer and
   data <= (current_date - interval '1 week')::date - to_char(current_date, 'D')::integer + 7

 

eu não consegui converter este SQL para rodar no mysql, mas de qualquer forma eu acho que este código não atende as minhas necessidades.

Se algum de vocês puder me ajudar, eu agradeceria muito.

Obriago desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentou usar a function WEEK ?

 

Compara a semana da base com semana da data corrente menos 1 (semana passada).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que será algo assim (atenção para a última e primeira semanas do ano)

 

 

select *
from tabela
where week(data) = (week(now()-1)
and year(data) = year(now())

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que será algo assim (atenção para a última e primeira semanas do ano)

 

 

select *
from tabela
where week(data) = (week(now()-1)
and year(data) = year(now())

 

Consegui montar o SQL com base no seu.

Veja como ficou: SELECT * FROM tabela WHERE YEARWEEK(data) = YEARWEEK(NOW())-1;

 

Obrigado pela ajuda, espero que esse post ajude mais alguém.

Até mais, abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.