begin
with dataa.Q2 do
 begin  if CBshkdate.Checked=true then
      swhere:='and shkdate>='''+FormatDateTime('ddddd',shkdate.Date)+'''';
  if CBshkname.Checked=true then
     swhere:=swhere+' and shkname='''+trim(shkname.Text)+'''';
  if CBusername.Checked=true then
     swhere:=swhere+'and username='''+trim(username.Text)+'''';
 close;
 sql.Clear;
 sql.Add('select * from shkinfo where 1=1'+swhere);
 open;
 end;红色部分的错误,FormatDateTime('ddddd',shkdate.Date) 如何调整?  DELPHI+ACCESS 
哪位兄弟分析下

解决方案 »

  1.   

     swhere:='and shkdate>='''+FormatDateTime('ddddd',shkdate.Date)+'''';和
     swhere:='and shkdate>='''+FormatDateTime('yyyy-mm-dd',shkdate.Date)+''''; 都是一样的错误!
      

  2.   

    swhere:='and (shkdate>='''+datetostr(shkdate.date)+'空格00:00:00'')'; 
    shkdate可以是datetime就用下面这个
    swhere:='and (shkdate>='''+datetimetostr(shkdate.datetime)+''')'; 
      

  3.   

    shkdate为2012-3-27 这样的格式!!
      

  4.   

    瞧瞧你ACCESS里的shkdate是什么类型,如果是字符串,就这样
    swhere:='and DateValue(shkdate)>='''+DateToStr(shkdate.Date)+'''';
      

  5.   


    我数据库ACCESS里的shkdate是日期/时间  格式!!
      

  6.   

    用的也是ACCESS的日期/时间格式
      Edit1.Text := FormatDateTime('YYYY-MM-DD', ADODataSet1.FieldByName('testDateTime').AsDateTime);
    没报错啊
      

  7.   

    ACCess数据库的日期条件的查询语句,要在日期前后加#
    例如,select * from table where nDateTime>#2012-03-25 12:01:52#
      

  8.   

    把SQL语句输出出来看看,然后到后台数据库上查询下,哪里有问题就明白了,看下楼上的答复