GARANTIR DESCONTO

Fórum Datas Filtrar no Firebird #270383

28/02/2005

0

Alguem saberia me dizer por que não retorna nada quando filtro campo date no firebird?

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

Rm

Responder

Posts

28/02/2005

Jc_analista

vc tem q formatar a data assim: mm/dd/yyyy


Responder

Gostei + 0

28/02/2005

Rm

Formatei o Datetimepicker para MM/dd/yyyy.

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.


Responder

Gostei + 0

28/02/2005

Jc_analista

antes de vc incluir a data no sql faz o seguinte:

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;


Responder

Gostei + 0

28/02/2005

Vprates

tente formatar a data como dd.mm.aaaa
eu uso assim nas minhas consultas e funciona legal...


vlw


Responder

Gostei + 0

02/03/2005

Rm

Alo pessoal

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;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar