Ir para conteúdo

POWERED BY:

Arquivado

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

osk

[Resolvido] mostrar data a vencer antes

Recommended Posts

Tenho uma data no meu db, e preciso mostrar essa data 3 meses antes dela vencer.

 

Então fiz assim:

 

SELECT * FROM filiados WHERE MONTH(cpdValidade) = MOD(MONTH(CURDATE()), 3)

 

Só que agora também preciso mostrar 2 meses antes, 1 mês antes e se for o mesmo mês mostra também.

 

Até tentei, mas não funcionou:

 

SELECT * FROM filiados WHERE MONTH(cpdValidade) = MOD(MONTH(CURDATE()), 3) OR MONTH(cpdValidade) = MOD(MONTH(CURDATE()), 2) OR MONTH(cpdValidade) = MOD(MONTH(CURDATE()), 1)

 

Tem outra forma de resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

só é para pegar se for exatamente o dia que falta para a data limite

 

tipo 1/1/2012 pegaria apenas em 1/10/2011 OU 1/11/2011 OU 1/12/2011 ?

 

Ou é para pegar em um intervalo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu preciso sempre comparar o mês e ano ou seja 1/1/2012 tenho que mostrar que faltam 3 meses para chegar nesta data depois que faltam 2 falta 1.

 

Mas o dia não me interessa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então voce deve pegar periodos, ou seja intervalos em vez de usar = em sua query

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser com BETWEEN

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mário, consegui resolver desta forma:

 

SELECT * FROM filiados WHERE MONTH(cpdValidade) = MOD(MONTH(CURDATE()), 3) OR MONTH(cpdValidade) = MONTH(CURDATE()) + 2 OR MONTH(cpdValidade) = MONTH(CURDATE()) + 1 OR MONTH(cpdValidade) = MONTH(CURDATE())

 

Tem alguma problema em ser assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pela query não entendi exatamente o quer mas se resolveu está ótimo

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.