Pesquisa entre datas com campo char.
09/03/2006
0
tenho um banco de dados no qual foi configurado a
data_movimento -> char(10).
então são gravados as datas 01/03/2006.. etc..
agora tenho que fazer uma consulta entre as datas, e como montaram as datas como char não estou sabendo fazer..
ex.
select * from producao
where data_movimento between :dt1 and :dt2
se as datas forem por exemplo de 20/02/2006 a 24/02/2006.. ele filtra direitinho
mas se for 20/02/2006 a 02/03/2006. ele não acha nenhum registro..
seria inviável pra mim mudar a estrutura da tabela,visto que já tem mtos registros..
tem alguma outra solução?
Obrigado pessoal!
Eric.miranda
Posts
09/03/2006
Paullsoftware
[b:b335e5131f]Tabela de Clientes (Nome, Fone e Cadastro)[/b:b335e5131f][i:b335e5131f]todos os campos como [/i:b335e5131f]Char...
With QyClientes do begin close; Sql.Clear; Sql.Add(´ Select * from Clientes ´+ ´ where Cadastro between :dt1 and :dt2 ´); ParamByName(´dt1´).AsDate := DtPk1.Date; ParamByName(´dt2´).AsDate := DtPk2.Date; Prepare; Open; end;
Não sei se vc sabe, mais não é bom usar o tipo de dados char(x) normalmente ele completa o preenchemento do campo com espaços em branco use VarChar(x) no seu lugar... :wink:
09/03/2006
Eric.miranda
deu invalid date format..
fiz do jeito que vc descreveu.. qual será o problema??
meu campo data_movimento é um char(10) ex: 30/01/2006
valeu
10/03/2006
Motta
Já tentou um Cast para date , não sei a sintaxe correta, no Oracle existe uma function to_date , mas é proprietaria.
acho que a sintaxe é [b:0d2c040437]cast(data_movimento as date)[/b:0d2c040437]
10/03/2006
Eric.miranda
Uso o sqlserver 2000..
vc sabe se tem algo parecido nele?
10/03/2006
Motta
tenta um forum de sqlserver.
10/03/2006
Martins
With QyClientes do begin close; Sql.Clear; Sql.Add(´ Select * from Clientes ´+ ´ where Cast(Data_Movimento as DateTime) between :dt1 and :dt2 ´); ParamByName(´dt1´).AsDate := DtPk1.Date; ParamByName(´dt2´).AsDate := DtPk2.Date; Prepare; Open; end;
Qualquer coisa retorne aqui no tópico para q possamos lhe ajudar.
Boa sorte!!!
Clique aqui para fazer login e interagir na Comunidade :)