数据库access,用adoquery连接
  starttime:=strtodatetime(formatdatetime('yyyy-m-d',DateTimePicker1.Datetime));
  endtime:=strtodatetime(formatdatetime('yyyy-m-d',DateTimePicker2.Datetime));
  tmpstr:=tmpstr+'(billcreatetime>'+datetostr(starttime)+') and (billcreatetime<'+datetostr(endtime)+')';
为什么这样写,不起作用,谢谢了

解决方案 »

  1.   

      tmpstr:=tmpstr+'(billcreatetime>'''+formatdatetime('yyyy-m-d',DateTimePicker1.Datetime)+''') and (billcreatetime <'''+formatdatetime('yyyy-m-d',DateTimePicker2.Datetime)+''')'; 
      

  2.   

    不好意思,没看清楚数据库是access, 日期用#分割
      

  3.   

    额,怎么分割?
     tmpstr:=tmpstr+'(billcreatetime>#+formatdatetime('yyyy-m-d',DateTimePicker1.Datetime)+#) and (billcreatetime <#+formatdatetime('yyyy-m-d',DateTimePicker2.Datetime)+#)'; 
    这样?
      

  4.   


    tmpstr:=tmpstr+'(billcreatetime>#'+datetostr(starttime)+') and (billcreatetime <#'+datetostr(endtime)+')'; 
      

  5.   


    tmpstr:=tmpstr+'(billcreatetime>#'+datetostr(starttime)+'#) and (billcreatetime <#'+datetostr(endtime)+'#)'; 
      

  6.   

    'select * from store left join bill on store.billindex=bill.id where (billkind like '材料出库单')and (billcreatetime>#2009-4-10) and (billcreatetime <#2009-4-10)and ((billkind='材料入库单') or  (billkind='材料出库单') or (billkind='成品生产单'))'
    结果如上,还是报错.
      

  7.   

    sql.text := 'select * from t where d1>:d1';parameters.parambyname('d1').value := formatdatetime(starttime);用参数来实现也可以