Ir para conteúdo

Arquivado

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

Maykel-ctba

Consulta de data "maior ou igual que" não traz registro.

Recommended Posts

Tenho o seguinte registro:

 

Hrpl4PW.png

 

Gostaria de trazê-lo através da consulta:

SELECT * FROM sistema_desconto WHERE (desDataInicio >= CURDATE() AND desDataFim <= CURDATE())

Mas não retorna. O que há de errado? Gostaria de trazer as promoções vigentes (ou seja, data de inicio maior ou igual a hoje e data de fim menores do que hoje).

 

Considerando que CURDATE() = "2015-03-03"...

 

Todos os campos de data estão no formato DATE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não traz exatamente pela sua consideração final:

 desDataFim <= CURDATE()

A data FIM deve ser maior (e igual, dependendo do caso) que a data atual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas mesmo deixando apenas a condição inicial (desDataInicio >= CURDATE()) ele não traz.


E outra, a data fim não pode ser maior que... senão o desconto ficará vigente para os dias após a promoção ter sido finalizada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora que eu percebi, sua lógica está totalmente invertida. Por isso não ter retorna os descontos.

 

A lógica seria a seguite:

- Data inicial menor/igual a data de hoje;

- Data final maior igual a data de hoje;

 

Que é o contrário da sua.

 

Mas nesse caso, você pode utilizar between também:

CURDATE() BETWEEN desDataIni AND desDataFim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre me embanano com as lógicas de comparação de data! hahahah

 

Com o Between, deu certo!

SELECT * 
FROM sistema_desconto
WHERE CURDATE( ) 
BETWEEN desDataInicio
AND desDataFim

Obrigado @Gabriel!

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.