Ir para conteúdo

POWERED BY:

Arquivado

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

David_PHP

between

Recommended Posts

Olá a Todos,

 

estou com uma dúvida sobre um select, quero fazer um relatório por data de nascimento, somente o DIA E O MES ex.. todas as pessoas q fazem aniversário do dia 01 de julho a 29 de setembro, fiz o select abaixo porém ele não está respeitando a condição do between e retorna todos os dados.

 

SELECT NOME,DATE_FORMAT( DATA_NASCIMENTO, '%d-%m' ) AS DATA_NASCIMENTO FROM TB_PESSOA

WHERE DATA_NASCIMENTO BETWEEN '01-07' AND '29-09'

Compartilhar este post


Link para o post
Compartilhar em outros sites

de fato...

 

quando você usa date_format ele transforma campo em texto(string) de forma q o campo agora nao presta mais pra nada para se fazer consultas , a conversao tem q ser feita no filtro e outra o mes deve sempre vir antes do dia...

 

pq

 

01-07 ateh 29-09 q agora sao numeros/string inclui coisas como 12-01 q eh dezembro e por isso ta voltando tudo pra você

 

entao...

 

SELECT NOME,DATE_FORMAT( DATA_NASCIMENTO, '%d-%m' ) AS DATA_NASCIMENTO_Z FROM TB_PESSOA

WHERE DATE_FORMAT(DATA_NASCIMENTO BETWEEN,'%m%d') BETWEEN '0701' AND '0929'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sabia q era por pouco q estava errando, consegui fazer o q eu queria só modifiquei um pouco ficou assim

 

SELECT NOME,DATE_FORMAT( DATA_NASCIMENTO, '%d-%m' ) AS DATA_NASCIMENTO_Z FROM

 

TB_PESSOA

WHERE DATE_FORMAT(DATA_NASCIMENTO,'%m%d') BETWEEN '0701' AND '0929'

o between estava duplicado...

 

 

valeu giesta

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.