David_PHP 0 Denunciar post Postado Junho 30, 2008 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
giesta 29 Denunciar post Postado Junho 30, 2008 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
David_PHP 0 Denunciar post Postado Junho 30, 2008 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