Shunt 0 Denunciar post Postado Agosto 23, 2009 olá estou com uma duvida em um codico php pesquisei alguma forma de enviar uma consulta sql em formato de data, porem dada em entre duas datas $data_inicio = "$dia_inicio/$mes_inicio/$ano_inicio"; $data_final = "$dia_final/$mes_final/$ano_final"; $tabela = "SELECT * FROM pedidos WHERE (data BETWEEN '$data_inicio' AND '$data_final')"; $exec = mysql_query($tabela); a consulta ocorre com sucesso porem ja testei, exemplo datas entre 01/01/2008 à 01/01/2009 e as vezes tem alguma consulta entre essas datas e ele não acha ou ate mesmo pega valores de datas que não estão entre os periodos de tempo... obs ja tirei os conchetes do SELECT e da na mesma... alguem sabe qual o problema? ou conhece alguma outra forma de buscar valores no sql entre datas sem ser pelo metodo que eu fiz? vlw pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 24, 2009 O formato padrão de data é AAAA-MM-DD e não DD/MM/AAAA. Troque o formato e veja se retorna alguma coisa. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Agosto 24, 2009 O formato padrão de data é AAAA-MM-DD e não DD/MM/AAAA. Troque o formato e veja se retorna alguma coisa. Carlos Eduardo Eu já testei isso tambem e não funciona... Tô pensando aki...Será um erro do MySQL??? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 24, 2009 Olha, tenta colocar este código e posta aqui o que aparece. $data_inicio = "$dia_inicio/$mes_inicio/$ano_inicio"; $data_final = "$dia_final/$mes_final/$ano_final"; $tabela = "SELECT * FROM pedidos WHERE data BETWEEN ('$data_inicio' AND '$data_final')"; echo $tabela; $exec = mysql_query($tabela) or die(mysql_error()); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Agosto 24, 2009 Na minha aqui, apareceu apenas a instrução SQL contida na variavel $tabela SELECT * FROM `passes` WHERE (`passes`.`pas_data` BETWEEN '1/1/2008' AND '1/1/2009')Bom...fiz um teste com outra tabela, porém...a ideia é a mesma... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Agosto 24, 2009 Olá Shunt cheguei na seguinte solução... A condição BETWEEN fará uma consulta entre tal dada maior ou igual que (>=) e a data tal menor ou igual que (<=) correto, portanto...em vez de utilizar o BETWEEN coloca manualmente mesmo que dará certo, aki deu certo. No seu caso ficaria da seguinte forma SELECT * FROM pedidos WHERE data >= '$data_inicio' AND data <= '$data_final'Ahh e outra coisa, eu tava testando os numeros como 1,2,3...9 tanto para dias quanto para os meses e não tava funcionando, funcionou apenas quando eu mudei para 01,02,03...09, bom...pelo menos por aki aconteceu isso rssss http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Mas...caso ainda desejar utilizar o BETWEEN mude para algo do tipo abaixo SELECT * FROM pedidos WHERE STR_TO_DATE(data , '%d/%m/%Y') BETWEEN '2008/01/01' AND '2009/01/01' E outra coisa...faça a consulta com a data invertida no formato "YYYY/MM/DD". Bom...testa e posta aki para sabermos se deu certo ok http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Bom...abraços e boa sorte aí http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites