不用那么麻烦吧,直接 datetimefield between '2001-07-19' and '2001-08-19'

解决方案 »

  1.   

    sql.add('where 出国日期=''' + 2001-07-19  + '''')
      

  2.   

    看看你的控制面板中的日期格式设置,分隔符是不是'-',不是的话改一下就可以了。
    如果用的sqlserver的话,sql语句用between '' and '' 就可以了,
    你试一试。
      

  3.   

    sql.add('where 出国日期=''' + datetostr(2001-07-19) + '''')
      

  4.   

    如果是用ado的jet4.0+access,日期型的字段不能用'而是要用#来表示,也许就是这么错的
      

  5.   

    也可加个在SQL语句中加个参数,然后设为Date类型。
      

  6.   

    什么库呀?
    试试
    procedure TForm2.BitBtn1Click(Sender: TObject);
    begin
      with query1,query1.sql do
        begin
          close;
          Clear;
          Add('select * from lwsc');
          add('where 出国日期=:tempdate);
          parambyname('tempdate').asdatetime:=strtodate('2001-07-19');
          open;
        end;
    end;
      

  7.   

    同意楼上的意见:不过稍改下更完美
    procedure TForm2.BitBtn1Click(Sender: TObject);beginwith query1 do
    begin
      close;
      sql.Clear;
      sql.Add('select * from lwsc');
      sql.add('where 出国日期=:tempdate');(这里可换成 between :tempdate1 and :tempdate2,然后下面定义2个动态参数)
          parambyname('tempdate').asdatetime:=datetimepicker1.date(动态改变日期);
          
     open;
      end;
    end;