Problemas com SQL quot;dataquot;
No InterBase funciona desse forma.
select * from TAB_PONTO where FUNCIONARIO = 1 and Data>= ´09/24/2005´ and data <= ´09/27/2005´
No Delphi estou fazendo dessa forma, mas tem um problema, ele passa as datas no formato DD/MM/AAAA e o InterBase só aceita MM/DD/AAAA sempre quando executo o procedimento abaixo, gera o seguinte erro:
conversion erro from string ´´27/9/2005´
Modulo.setPonto.Close;
with Modulo.setPonto.SelectSQL do
begin
Clear;
Add(´select * from TAB_PONTO where FUNCIONARIO = ´+IntToStr(DBLookupComboBox1.KeyValue)+´ and Data >= ´´´+DateToStr(DateTimePicker1.Date)+´´´ and Data <= ´´´+DateToStr(DateTimePicker2.Date)+´´´´);
end;
Modulo.setPonto.Open;
O que devo mudar para que o delphi passe as datas no formato MM/DD/AAAA?
select * from TAB_PONTO where FUNCIONARIO = 1 and Data>= ´09/24/2005´ and data <= ´09/27/2005´
No Delphi estou fazendo dessa forma, mas tem um problema, ele passa as datas no formato DD/MM/AAAA e o InterBase só aceita MM/DD/AAAA sempre quando executo o procedimento abaixo, gera o seguinte erro:
conversion erro from string ´´27/9/2005´
Modulo.setPonto.Close;
with Modulo.setPonto.SelectSQL do
begin
Clear;
Add(´select * from TAB_PONTO where FUNCIONARIO = ´+IntToStr(DBLookupComboBox1.KeyValue)+´ and Data >= ´´´+DateToStr(DateTimePicker1.Date)+´´´ and Data <= ´´´+DateToStr(DateTimePicker2.Date)+´´´´);
end;
Modulo.setPonto.Open;
O que devo mudar para que o delphi passe as datas no formato MM/DD/AAAA?
Ullrich
Curtidas 0
Respostas
Sistemald
25/10/2005
No Interbase para usar data no formato DD/MM/AAAA use xx.mm.aaaa
a diferença esta no ´.´ n lugar de ´/´.
recomendo fazer consulta desta forma:
select * from TAB_PONTO where FUNCIONARIO = 1 and Data>= :data1 and data <= :data2
no componente de acesso use:
query.params[0].asdate:= ´24/09/2005´;
query.params[1].asdate:= ´27/09/2005´;
query.open;
a diferença esta no ´.´ n lugar de ´/´.
recomendo fazer consulta desta forma:
select * from TAB_PONTO where FUNCIONARIO = 1 and Data>= :data1 and data <= :data2
no componente de acesso use:
query.params[0].asdate:= ´24/09/2005´;
query.params[1].asdate:= ´27/09/2005´;
query.open;
GOSTEI 0
Bruno Belchior
25/10/2005
Modulo.setPonto.Close; with Modulo.setPonto.SelectSQL do Begin Clear; Add(´select * from TAB_PONTO where FUNCIONARIO = ´+ IntToStr(DBLookupComboBox1.KeyValue)+ ´ and Data >= ´ + QuotedStr(FormatDateTime(´mm/dd/yyyy´, DateTimePicker1.Date)) + ´ and Data <= ´ + QuotedStr(FormatDateTime(´mm/dd/yyyy´, DateTimePicker2.Date)); end; Modulo.setPonto.Open;
GOSTEI 0
Marcio.theis
25/10/2005
Uma outra forma de fazer seira:
Modulo.setPonto.Close; with Modulo.setPonto.SelectSQL do begin Clear; Add(´select *´); Add(´from TAB_PONTO´); Add(´where FUNCIONARIO = 1´); Add(´and Data>= :dtIni and data <= :dtFim´); end; Modulo.setPonto.ParamByName(´dtIni´).Value:=StrToDate(DateToStr(DateTimePickerIni.Date)); Modulo.setPonto.ParamByName(´dtFim´).Value:=StrToDate(DateToStr(DateTimePickerFim.Date)); Modulo.setPonto.Open;
GOSTEI 0
Ronaldo.cutu
25/10/2005
faça assim com as data
formatdatetime(´mm/dd/yyyy´, data_no_delphi)
att
Ronaldo
formatdatetime(´mm/dd/yyyy´, data_no_delphi)
att
Ronaldo
GOSTEI 0
Ullrich
25/10/2005
Obrigado a todos pela atenção.
A correção do procedimento feita pelo Bruno Belchior ficou muito boa. executei sem problemas, obrigado a todos pela ajuda.
A correção do procedimento feita pelo Bruno Belchior ficou muito boa. executei sem problemas, obrigado a todos pela ajuda.
GOSTEI 0