sql.add('select * from tablename where rq between '+''''+'1899/12/01'+''''+' and '+''''+'1900/12/22' +'''');

解决方案 »

  1.   

    with query1 do
        begin
           close;
           sql.clear;
           sql.Add('select * from employee where (hiredate>=:N1) and (hiredate<=:N2)');
           parambyname('N1').AsDate:=strtodate('91-8-1');
           parambyname('N2').AsDate:=strtodate('93-2-1');
           open;
        end;
      

  2.   

    '1899/12/01’是什么类型的数据?字符型还是日期型?
    如果是字符型的话可以用上面的代码;
    如果是日期型的话:
    sql.add('select * from tablename where str(year(getdate()),4)'+''''+'/'+''''+'(case when month(getdate())<10 then '+''''+'0'+''''+'str(month(getdate()),1) else str(month(getdate()),2) end)+'+''''+'/'+''''+'(case when day(getdate())<10 then '+''''+'0'+''''+'str(day(getdate()),1) else str(day(getdate()),2) end) between '+''''+'1899/12/01'+' and '+''''+'1900/12/22')
    不过我觉得上面naughtyboy(淘气男孩)的方法更好
      

  3.   

    with query do
      begin
        close;
        sql.clear;
        sql.text:='select * from yourtable 
                   where (yourfield>=:date1) and (yourfield<=:date2)';
        parambyname('date1' ).asdatetime:=strtodate('1899-12-1');
        parambyname('date2').asdatetime:=strtodate('1900-12-22');
        open;
      end;
      

  4.   

    where datefield >= date1 and datefield <= date2
    date1:‘1899/12/01’
    date2:‘1900/12/22’