if radiobutton1.Checked then
 begin
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('select * from slpz where slrq between '+''''+datetimepicker1.date+' and '+''''+datetimepicker2'');
  adoquery1.Open;
  frm_bb_sl.show;
  self.Hide;
  while  adoquery1.Eof do
  showmessage('对不起没有您要的结果,您是否输入正确!');
 end;出现错误  [Error] bb.pas(47): Incompatible types: 'String' and 'TDate'
[Error] bb.pas(47): Missing operator or semicolon
  这是说类型不符是吗,怎样解决呢,我的slrq是日期型

解决方案 »

  1.   


     between '+''''+datetostr(datetimepicker1.date)+ 'and '+''''+datetostr(datetimepicker2.date)+''''就是这样,肯定能用
      

  2.   

    给你提供一段代码参考:
    mysql:='select '+ selectedfield +' from '+selectedTable +' where  时间字段  between ' ;
    mysql:=mysql+' to_date(''' +qbegindate+''',''yyyy-mm-dd '')  and  to_date('''+qenddate+''',''yyyy-mm-dd '''+')';其中:selectedfield为选中的字段
          selectedTable为查询的表
          时间字段为查询条件的字段
      

  3.   

    应该是
    adoquery1.SQL.Add('select * from slpz where slrq between '''+datetimepicker1.date+''''+' and '''+datetimepicker2+'''');
      

  4.   

    if radiobutton1.Checked then
    begin
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from slpz where slrq>=:datetime1 and slrq<=:datetime2');
      adoquery1.Parameters.ParamByName('datetime1').asdatetime:=datetimepicker1.date
      adoquery1.Parameters.ParamByName('datetime2').asdatetime:=datetimepicker2.date
      adoquery1.Open;
      frm_bb_sl.show;
      self.Hide;
      if adoquery1.recordcount=0 then
        showmessage('对不起没有您要的结果,您是否输入正确!');
    end;