我的数据库是acess 数据库的日期的格式是2002-5-1 我用楼上这位兄弟的方法是,便已通过,但运行的时候说我数据错误 sql.clear; sql.Add('select * from goods where 商品属性='+''''+rirongpin+'''or 商品属性='+''''+food+'''or 商品属性='+''''+water+''''); sql.Add('or 销售日期='+''''+datetostr(DateTimePicker2.date)+'''');不知我应如何改呢?
把日期转换为#yyy-mm-dd#试一下,看能行不!
selsqlstr:=''; selsqlstr:='select * from tablename where '; if datetostr(datetimepicker1.Date)<>datetostr(date) then selsqlstr:=selsqlstr+'date>'+chr(39)+datetostr(datetimepicker1.Date)+chr(39) else selsqlstr:=selsqlstr+'date>''1900-1-1'''; if datetostr(datetimepicker2.Date)<>'' then selsqlstr:=selsqlstr+' and date<'+chr(39)+datetostr(datetimepicker2.Date)+chr(39); adoquery1.Active:=false; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add(selsqlstr); adoquery1.Active:=true;
要那么复杂吗? var Sql: string; Sql := 'select * from tablename where datename=' + '#' + datetostr(DateTimePicker.date)+ '#'; adoquery1.Active:=false; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add(Sql); adoquery1.Active:=true;
我用楼上这位兄弟的方法是,便已通过,但运行的时候说我数据错误
sql.clear;
sql.Add('select * from goods where 商品属性='+''''+rirongpin+'''or 商品属性='+''''+food+'''or 商品属性='+''''+water+'''');
sql.Add('or 销售日期='+''''+datetostr(DateTimePicker2.date)+'''');不知我应如何改呢?
selsqlstr:='select * from tablename where ';
if datetostr(datetimepicker1.Date)<>datetostr(date) then
selsqlstr:=selsqlstr+'date>'+chr(39)+datetostr(datetimepicker1.Date)+chr(39)
else
selsqlstr:=selsqlstr+'date>''1900-1-1'''; if datetostr(datetimepicker2.Date)<>'' then
selsqlstr:=selsqlstr+' and date<'+chr(39)+datetostr(datetimepicker2.Date)+chr(39); adoquery1.Active:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(selsqlstr);
adoquery1.Active:=true;
var
Sql: string;
Sql := 'select * from tablename where datename=' + '#' +
datetostr(DateTimePicker.date)+ '#';
adoquery1.Active:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(Sql);
adoquery1.Active:=true;