我想你可以用动态参数来解决这个问题。
str:='select * from aaa.db where 时间>:tTime',
然后给Dataset的动态参数传入你所要加的条件。

解决方案 »

  1.   

    with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      sql.add('Select *  from 表名  where  日期=p0');
      parameters[0].DataType :=ftDateTime;
      parameters[0].Value:=StrToDate(Edit1.text);
      ExecSQL;
    end;
      

  2.   

    其实一般不定义成DATE类型,而是定义成字符型,现在的办法是你把数据库里的时间转换成标准的字符型 ,DATETIMETOSTR,或者把EDIT里的字符转换成标准日期,然后在写
    str := 'select * from aaa.db where 时间>:S
    QUERY1。PARAMETERS。PARAMBYNAME(‘S’)。ASSTRING:=STRTODATE(EDIT1。TEXT);
      

  3.   

    用参数的方法我写过,没成功。可能是我写错了,我再试试。不过,能不能在query的sql builder中直接写如时间条件呢??
      

  4.   

    to akademecia
    一样的:
    query1.add('where 维修记录.时间 ='+datetostr(1999-01-21) +'');
    你试一下。
      

  5.   

    我成功啦,象颜羽说的:
    SQL->Add("where fee.Pay_date > :mTime ");
    Query->ParamByName("mTime")->AsDate=datetimepicker1.datetime;
    to akademecia
     你就照此做吧!!!