Fórum Data InterBase #39398
13/10/2003
0
Pessoal estou usando interbase 6(dialeto 3) pela 1ª vez e estou quebrando a cabeça para fazer uma consulta por datas (DataIni e DataFim). O campo data é do tipo date. Uso a paleta interbase
2 Maskedits : DataIni e DataFim
procedure TFConsCli.Vlr1Change(Sender: TObject);
var
pselect, pfrom, pwhere, stringsql: string;
begin
DM.Qaux1.active := false;
DM.Qaux1.SQL.Clear;
pselect:=´ SELECT * ´;
pfrom :=´FROM tbCLIENTES ´;
pwhere :=´WHERE ´;
if DataIni.Text <> ´´ then begin
if DataFim.Text = ´´ then
Exit;
if Combo.Items[Combo.ItemIndex] = ´´ then
pwhere:= pwhere+´ (DATA BETWEEN ´+DataIni.text+´ and ´+DataFim.text+´)´
end;
stringsql:= pselect+pfrom+pwhere;
DM.Qaux1.SQL.Text:=stringsql;
DM.Qaux1.Open;
DM.Qaux1.Active:=true;
end;
Já tentei fazer a consulta pelo ibconsole so que não consigo.
2 Maskedits : DataIni e DataFim
procedure TFConsCli.Vlr1Change(Sender: TObject);
var
pselect, pfrom, pwhere, stringsql: string;
begin
DM.Qaux1.active := false;
DM.Qaux1.SQL.Clear;
pselect:=´ SELECT * ´;
pfrom :=´FROM tbCLIENTES ´;
pwhere :=´WHERE ´;
if DataIni.Text <> ´´ then begin
if DataFim.Text = ´´ then
Exit;
if Combo.Items[Combo.ItemIndex] = ´´ then
pwhere:= pwhere+´ (DATA BETWEEN ´+DataIni.text+´ and ´+DataFim.text+´)´
end;
stringsql:= pselect+pfrom+pwhere;
DM.Qaux1.SQL.Text:=stringsql;
DM.Qaux1.Open;
DM.Qaux1.Active:=true;
end;
Já tentei fazer a consulta pelo ibconsole so que não consigo.
Angela
Curtir tópico
+ 0
Responder
Posts
13/10/2003
Afarias
1º ) a data deve ser passada para o IB em um formato reconhecido pelo IB (ex:: ´mm/dd/yyyy´ ou ´dd.mm.yyyy´)
2º) a data deve ser passada entre aspas-simples (como qualquer valor texto)
o SQL ficaria na forma::
select * from minha_tabela where campo_data between ´10/01/2003´ and ´10/31/2003´
vc pode usar (no Delphi) a função QuotedStr para colocar a data entre aspas-simples e a função FormatDateTime para formatar a data no formato desejado, ex::
DataIni, DataFin: TDateTime;
DataIni := StrToDate(MaskEdit1.Text);
DataFin := StrToDate(MaskEdit2.Text);
pWHERE := ´WHERE CAMPO_DATA BETWEEN ´ + QuotedStr(FormatDateTime(´mm/dd/yyyy´, DataIni)) + ´ AND ´ + QuotedStr(FormatDateTime(´mm/dd/yyyy´, DataFin));
T+
2º) a data deve ser passada entre aspas-simples (como qualquer valor texto)
o SQL ficaria na forma::
select * from minha_tabela where campo_data between ´10/01/2003´ and ´10/31/2003´
vc pode usar (no Delphi) a função QuotedStr para colocar a data entre aspas-simples e a função FormatDateTime para formatar a data no formato desejado, ex::
DataIni, DataFin: TDateTime;
DataIni := StrToDate(MaskEdit1.Text);
DataFin := StrToDate(MaskEdit2.Text);
pWHERE := ´WHERE CAMPO_DATA BETWEEN ´ + QuotedStr(FormatDateTime(´mm/dd/yyyy´, DataIni)) + ´ AND ´ + QuotedStr(FormatDateTime(´mm/dd/yyyy´, DataFin));
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)