Tenho uma tabela de clientes onde existe uma coluna VENCIMENTO. Estou tentando fazer um select para trazer os clientes com vencimentos daqui a 10 dias somente verificando o dia e mês. Portanto, seria um select dos clientes entre hoje e com vencimento entre hoje 22/02 até 03/03. (10 dias)!!
Estou tentando fazer utilizando BETWEEN mas não estou conseguindo:
SELECT NOME, VENCIMENTO FROM CLIENTE WHERE (RIGHT(VENCIMENTO,5) BETWEEN RIGHT(CURDATE(),5) AND (RIGHT(CURDATE(),5)+10)
e para a data futura tente utilizar dessa maneira para a data daqui a dez dias:
DATE_ADD(DATE(NOW()), INTERVAL 10 DAY)
editado:
se seu campo vencimento for do tipo date (não entendi por que usou RIGHT) sua query ficaria assim:
SELECT NOME, VENCIMENTO
FROM CLIENTE
WHERE VENCIMENTO BETWEEN DATE(NOW()) AND DATE_ADD(DATE(NOW()), INTERVAL 10 DAY)
R
rockstorm
Fiz e ficou assim:
SELECT NOME, VENCIMENTO FROM CLIENTE WHERE (RIGHT(VENCIMENTO,5)) BETWEEN (RIGHT(NOW(),5)) and (RIGHT(DATE_ADD(DATE(NOW()), INTERVAL 20 DAY),5))
porem não retornou nada, mesmo tendo os dados para consulta. Só lembrando que estou usando o RIGHT porque reciso somente utilizar na consulta o dia e mes das datas em questão.
R
rockstorm
**Resolvido
O uso do RIGHT era para utilizar na pesquisa somente o dia e mes da data atual e vencimento do cliente. Ficou assim:
SELECT NOME, VENCIMENTO
FROM CLIENTE
WHERE RIGHT(VENCIMENTO,5) BETWEEN RIGHT(DATE(NOW()),5) AND RIGHT(DATE_ADD(DATE(NOW()), INTERVAL 9 DAY),5)
Obrigado pela força molmedo!!!
E
Ellyson
como posso fazer um select para retornar uma data de 7 dias anteriores em um banco?
F
Fabiano_Abreu
Olá Ellyson,
Utilize o date_sub:
Abraços.
_ _
Fabiano Abreu Papo SQL - Um blog com tutoriais, dicas e truques sobre SQL