Naelson 0 Denunciar post Postado Junho 15, 2009 Olá a todos, estava com esta dificuldade: Olá a todos, Estou com dificuldades no MySql, talvez voces possam me ajudar, segue a dúvida: Tenho esse SELECT, me retorna corretamente os registros com a data informada, SELECT * , DATE_FORMAT(DataEntrada, "%d-%m-%Y") FROM guiaitems_r WHERE DATE_FORMAT(DataEntrada, "%d/%m/%Y") = '08/05/2009' ORDER BY DataEntrada agora se eu colocar > ou <, me retorna registros que não corresponde a pesquisa, tipo dos anos 2007, 2008, etc. em outras palavras não funciona com o sinal de > ou <, somente com o igual, poderiam me ajudar. DATE_FORMAT(DataEntrada, "%d/%m/%Y") [color="#FF0000"]>=[/color] '08/05/2009' Um abraço a todos Naelson ai alterei para: $query_Recordset1 = sprintf( guiaitems_r.Protocolo, guiaitems_r.OrgaoCod, guiaitems_r.OrgaoDescricao, guiaitems_r.AssCod, guiaitems_r.AssDesc, guiaitems_r.MotivoCod, guiaitems_r.MotivoDesc, guiaitems_r.MotivoReal, guiaitems_r.TCSigla, guiaitems_r.TCNum, guiaitems_r.TCAno, guiaitems_r.DataTramite, guiaitems_r.DataEntrada FROM guiaitems_r WHERE guiaitems_r.DataEntrada>= STR_TO_DATE(%s,'%%d/%%m/%%Y') AND guiaitems_r.DataEntrada<=STR_TO_DATE(%s,'%%d/%%m/%%Y') ORDER BY guiaitems_r.DataEntrada", GetSQLValueString($search1_Recordset1, "date"),GetSQLValueString($search2_Recordset1, "date")); e consegui fazer o SELECT funcionar, acontece que agora na geração do relatório aparece a data no padrão '2009/05/16' segue a linha que mostro o resultado: $pdf->Cell(0,5, "".$row_Recordset1['DataEntrada'].""); preciso que me mostre no padrão BR '16/05/2009' e agora como proceder, alguém poderia me ajudar. Um abraço a todos Naelson Compartilhar este post Link para o post Compartilhar em outros sites
johnatam.camargo 0 Denunciar post Postado Junho 16, 2009 eio veio naum sei c no seu caso daria certo mais você pode usar o getdate() - busca data do servidor. select * from tb_alguma_coisa where data >= getdate() esse caso eh quando você naum digita a data,e sim pega do servidor qualquer duvida soh postar Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Junho 16, 2009 DATE_FORMAT(DataEntrada, "%d/%m/%Y") >= '08/05/2009' isso nunca vai funcionar, já que 08/05/2009 nao faz o menor sentido para o MySQL teria q ser DataEntrada > '20090508' ou DataEntrada > '2009-05-08' Compartilhar este post Link para o post Compartilhar em outros sites
Naelson 0 Denunciar post Postado Junho 16, 2009 Olá giesta, Primeiro, obrigado pela resposta, voce deve ter se enganado, pois funciona sim, a select retorna todos os registros pesquisados na data ou seja todos com data = '08/05/2009', acontece que quando eu coloco o sinal de > ou <, a pesquisa não funciona adequadamente ou seja, me retorna todos os registros que sejam maiores ou menores somente do dia, não respeitando o mes e o ano. Estou usando o DATE_FORMAT que faz a conversão para o padrão BR. um abraço Naelson DATE_FORMAT(DataEntrada, "%d/%m/%Y") >= '08/05/2009' isso nunca vai funcionar, já que 08/05/2009 nao faz o menor sentido para o MySQL teria q ser DataEntrada > '20090508' ou DataEntrada > '2009-05-08' Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Junho 17, 2009 Nao, eu nao me enganei. quando você diz DATE_FORMAT(DataEntrada, "%d/%m/%Y") >= '08/05/2009' você pergunta ao banco se '08/05/2009' eh igual a '08/05/2009' e realmente eh, embora ele nao faça a menor ideia do que eh '08/05/2009' e por isso que com '='(igual) funciona e com ><(maior e menor nao funciona) Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Junho 18, 2009 Tente fazer o seguinte, na estrutura wehere faça a conversão ao passar o parâmetro via aplicação, deixando o tipo do campo como está no banco, isto és, sem formatá-lo. você só faz a conversão no select para exibir a data para o usuário. Por exemplo: --AQUI SEU SELECT FICA FORMATADO COMO você DESEJAR SELECT * , DATE_FORMAT(DataEntrada, "%d-%m-%Y") SUA_DATA FROM guiaitems_r --AQUI você DEIXA O CAMPO NORMAL COMO ESTÁ NO BANCO --SEM FORMATAÇÃO, APENAS NA APLICAÇÃO É Q você ALTERA O FORMATO DO PARÂMETRO. WHERE DataEntrada > FormatDateTime('yyyy/MM/dd', StrToDateTime(TxtDataEntrada.Text)) ORDER BY DataEntrada Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Junho 20, 2009 pro banco eh a mesma coisa q eu chegar pra você e falar ZS|$12#3H eh igual a ZS|$12#3H ? você vai dizer q sim mas se eu perguntar se ZS|$12#3H eh maior q SS|@44#00 você nao vai saber me dizer pq isso nao faz sentido pra você, como 08/05/09 nao faz sentido pro banco Compartilhar este post Link para o post Compartilhar em outros sites
Naelson 0 Denunciar post Postado Junho 22, 2009 Primeiro gostaria de agradecer aos foristas, em especial aos colegas que prontamente, atenderam minha dúvida, com as dicas de voces deixei meu select assim, e está funcionando muito bem. Muito obrigado a todos. um abraço naelson SELECT DATE_FORMAT(DataEntrada, '%%d/%%m/%%Y') AS DataEntrada, guiaitems_r.Protocolo, guiaitems_r.OrgaoCod, guiaitems_r.OrgaoDescricao, guiaitems_r.AssCod, guiaitems_r.AssDesc, guiaitems_r.MotivoCod, guiaitems_r.MotivoDesc, guiaitems_r.MotivoReal, guiaitems_r.TCSigla, guiaitems_r.TCNum, guiaitems_r.TCAno FROM guiaitems_r WHERE guiaitems_r.DataEntrada>= STR_TO_DATE(%s,'%%d/%%m/%%Y') AND guiaitems_r.DataEntrada<=STR_TO_DATE(%s,'%%d/%%m/%%Y') ORDER BY guiaitems_r.DataEntrada Compartilhar este post Link para o post Compartilhar em outros sites