Fórum Datas Filtrar no Firebird #270383
28/02/2005
0
A data existe mas não retorna como se estivesse em outro formato.
Uso um edit preenchido por datetimepicker
Já tentei varias opções inclusive digitei o codigo da data ( ex 31/03/05=38442)
Grato desde já
Rm
Curtir tópico
+ 0Posts
28/02/2005
Jc_analista
Gostei + 0
28/02/2005
Rm
Como disse mando para um edit mas indo para este edit como dd/MM/yyyy da mesma forma.(?)
Então Fiz o filtro direto do datetimepicker> datetostr(datetimepicker1.date);
Ainda tentei digitar direto no edit
Nenhuma opção funcionou. Todos os outros filtros (campo varchar,integer,etc) funcionam,só não funciona o campo date.
Gostei + 0
28/02/2005
Jc_analista
var
dataformatada:string;
ano,mes,dia:word;
begin
decodedate(strtodate(edit1.text,ano,mes,dia);
dataformatada:=inttostr(mes)+´/´+inttostr(dia)+´/´+inttostr(ano);
// daqui em diante vc coloca a consulta sql, lembrando q se vc passar a data por parametro para a query não vai funcionar...
end;
Gostei + 0
28/02/2005
Vprates
eu uso assim nas minhas consultas e funciona legal...
vlw
Gostei + 0
02/03/2005
Rm
Em primeiro lugar obrigado a todos pelas dicas.
Não sei se é uma viagem mas o único jeito de fazer filtro em campo date com Firebird 1.5 e Zeos dbo 6.1.5 foi o seguinte>
A data tem que ser yyyy/MM/dd (quotedstr).
Como a data é definida por datetimepicker o formato se perdia.Então usei a dica do colega para decodedate. Mas então o zero de meses antes outubro (ex março=03) não era aplicado (word).Assim tive que colocá-lo em string criando outra variavel.
Funcionou finalmente e coloco para avaliação e, quem sabe beneficio, de todos:
var
dataformatada,mescr:string;
ano,mes,dia:word;
begin
decodedate(strtodate(edit1.text),ano,mes,dia);
if mes <10 then begin
mesCr:=inttostr(mes);
mescr:=´0´+ mescr; //não aparecia o Zero que o filtro pede em meses >setembro
dataformatada:=inttostr(ano)+´/´+MEScr +´/´+inttostr(DIA);
dm2.ZTPedidosRem45.Filter:=´Dataentr=´+ QUOTEDSTR(dataformatada);
end;
if mes >9 then begin//
mesCr:=inttostr(mes);//não precisa zero em meses após setembr
dataformatada:=inttostr(ano)+´/´+MEScr +´/´+inttostr(DIA);
dm2.ZTPedidosRem45.Filter:=´Dataentr=´+ QUOTEDSTR(dataformatada);
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)