Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou fazendo um sistema de folha de pagamento.
essa é a Query
SELECT p.s_vendedor, SUM(p.comissao) AS comissao, v.salario, v.nome FROM tbpaga_vend p, tbvendedor v WHERE p.s_vendedor=v.seq AND p.data BETWEEN '01/05/2013' AND '31/05/2013' GROUP BY s_vendedor ORDER BY v.nome
Ele faz a busca no banco corretamente e retorna tudo corretamente tirando uma coisa, a DATA, ele ñ consegue fazer a filtragem da DATA e eu não consigo saber o porque.
Desde Já agradeço a ajuda.
Diz uma coisa felipe a data não teria que ser invertida ?
Não, pois no banco a coluna não está como DATE e sim varchar.
Não, pois no banco a coluna não está como DATE e sim varchar.
melhor coisa é trabalhar com o DATE mesmo, com string não vai dar certo não. Exemplo:
você tem duas datas 21/01/2013 e 11/02/2013, se você ordenar por data crescente o correto seria 21/01 primeiro depois 11/02. Mas como seu campo está em string ele segue pelo primeiro numero no caso 1, então seu retorno seria 11/02 e depois 21/01. Viraria uma bagunça só !!
usa o date e depois converte para o formato de data que vc quiser.
>
melhor coisa é trabalhar com o DATE mesmo, com string não vai dar certo não. Exemplo:
você tem duas datas 21/01/2013 e 11/02/2013, se você ordenar por data crescente o correto seria 21/01 primeiro depois 11/02. Mas como seu campo está em string ele segue pelo primeiro numero no caso 1, então seu retorno seria 11/02 e depois 21/01. Viraria uma bagunça só !!
usa o date e depois converte para o formato de data que vc quiser.
Sim entendo isso, mas não estou fazendo este tipo de ordenação, gostaria apenas de saber o pq nessa query (já q em outras dessa forma funciona) não está funcionando a limitação de data.
imprime junto o campo data para ver o que retorna.
Converte o campo de String para Date.
O Between não vai funcionar neste seu select exatamente pelo motivo que o rockrgo falou.
Não tem como pesquisar o valor entre duas palavras, utilizar corretamento o tipo de dados para cada campo é a melhor solução para evitar problemas como este que está enfrentando agora.
>
Converte o campo de String para Date.
O Between não vai funcionar neste seu select exatamente pelo motivo que o rockrgo falou.
Não tem como pesquisar o valor entre duas palavras, utilizar corretamento o tipo de dados para cada campo é a melhor solução para evitar problemas como este que está enfrentando agora.
Eu já faço essa pesquisa deste modo em outras querys, e da certo, somente nessa que está dando erro, mas de qualquer forma irei mudar p/ DATE e fazer os teste
Diz uma coisa felipe a data não teria que ser invertida ?