With Query1 do begin Close; SQL.Clear; SQL.Add('Select * From Table '); SQL.Add('Where FDate between :StartDate and :EndDate '); ParamByName('StartDate').asDateTime:=varDate1; ParamByName('EndDate').asDateTime:=varDate2; Open; end;
同意楼上的,你在对date操作时,date格式要统一
最近用了一下decodedate,可以把日期分解为年月日 不知能不能放入查询里面用用 大家都试一试
只要用分隔符为/或-的合法datetime在delphi6里均可用
看是对什么数据库操作 select * from tab1 where tab1.a>=#'+DateToStr(DateTimepicker1.Date)+'#'; select * from tab1 where tab1.a>='''+DateToStr(DateTimepicker1.Date)+''''; select * from tab1 where tab1.a>="'+DateToStr(DateTimepicker1.Date)+'"';
select * form a while date between date1 and date2
哈哈,我刚作了一个例子,给你看看(我这是一个组合查询,可选可不选) aSQL:string; begin date1:=dtp_time1.date; date2:=dtp_time2.Date; if chk_date.Checked=true then aSQL:=aSQL+('and 采购日期 between #'+datetostr(dtp_time1.date)+'# and #'+datetostr(dtp_time2.date)+'#'); if ((edt_shangpinid.Text<>'') and (cmb_shangpinid.Text<>'')) then aSQL:=aSQL+(' and 商品编号'+cmb_shangpinid.text+edt_shangpinid.text); if ((cmb_danjia.text<>'') and(edt_danjia.Text<>'')) then aSQL:=aSQL+(' and 单价'+cmb_danjia.Text+edt_danjia.Text); if edt_name.Text<>'' then aSQL:=aSQL+(' and 操作员='''+edt_name.Text+''''); if ((cmb_gonghuoshangid.Text<>'') and (edt_gonghuoshangid.Text<>'')) then aSQL:=aSQL+(' and 供货商编号'+cmb_gonghuoshangid.Text+edt_gonghuoshangid.Text); if aSQL<>'' then with ADO_qry_jinhuotongji do begin close; //sql.Clear; sql.Strings[1]; sql.text:='select 商品编号,供货商编号,采购日期,单价,数量,操作员,数量*单价 from 采购单表 where 流水号<>0'; sql.Add(aSQL); showmessage(sql.Text); if chk_date.Checked=true then ExecSQL; open; end;
begin
Close;
SQL.Clear;
SQL.Add('Select * From Table ');
SQL.Add('Where FDate between :StartDate and :EndDate ');
ParamByName('StartDate').asDateTime:=varDate1;
ParamByName('EndDate').asDateTime:=varDate2;
Open;
end;
不知能不能放入查询里面用用
大家都试一试
select * from tab1 where tab1.a>=#'+DateToStr(DateTimepicker1.Date)+'#';
select * from tab1 where tab1.a>='''+DateToStr(DateTimepicker1.Date)+'''';
select * from tab1 where tab1.a>="'+DateToStr(DateTimepicker1.Date)+'"';
aSQL:string;
begin
date1:=dtp_time1.date;
date2:=dtp_time2.Date;
if chk_date.Checked=true then aSQL:=aSQL+('and 采购日期 between #'+datetostr(dtp_time1.date)+'# and #'+datetostr(dtp_time2.date)+'#');
if ((edt_shangpinid.Text<>'') and (cmb_shangpinid.Text<>'')) then aSQL:=aSQL+(' and 商品编号'+cmb_shangpinid.text+edt_shangpinid.text);
if ((cmb_danjia.text<>'') and(edt_danjia.Text<>'')) then aSQL:=aSQL+(' and 单价'+cmb_danjia.Text+edt_danjia.Text);
if edt_name.Text<>'' then aSQL:=aSQL+(' and 操作员='''+edt_name.Text+'''');
if ((cmb_gonghuoshangid.Text<>'') and (edt_gonghuoshangid.Text<>'')) then aSQL:=aSQL+(' and 供货商编号'+cmb_gonghuoshangid.Text+edt_gonghuoshangid.Text);
if aSQL<>'' then
with ADO_qry_jinhuotongji do
begin
close;
//sql.Clear;
sql.Strings[1];
sql.text:='select 商品编号,供货商编号,采购日期,单价,数量,操作员,数量*单价 from 采购单表 where 流水号<>0';
sql.Add(aSQL);
showmessage(sql.Text);
if chk_date.Checked=true then
ExecSQL;
open;
end;