1:
  s_dtToday := '#' + Formatdatetime('YYYY-M-D',Now) + '#';
  with AdoQuery1 do
  begin
    Close;
    Sql.Clear;
    Sql.Add('SELECT         ');
    Sql.Add('B.Cstm_Name    ');
    Sql.Add('FROM T_RemindData A ');
    Sql.Add(' LEFT JOIN T_Order B ON A.Oder_ID=B.Oder_ID ');
    Sql.Add(' WHERE LEFT(A.Rmdt_Date,10) =   '+s_dtToday);
    Open; 
  end;2:
  with AdoQuery1 do
  begin
    Close;
    Sql.Clear;
    Sql.Add('SELECT         ');
    Sql.Add('B.Cstm_Name    ');
    Sql.Add('FROM T_RemindData A ');
    Sql.Add(' LEFT JOIN T_Order B ON A.Oder_ID=B.Oder_ID ');
    Sql.Add(' WHERE LEFT(A.Rmdt_Date,10) = :rmdtDate  ');
    Parameters.ParamByName('rmdtDate').Value := '#' + Formatdatetime('YYYY-M-D',Now) + '#';
    Open; 
  end;为什么1可以得到结果2却不行呢,delphi6+access     谢谢!

解决方案 »

  1.   

    = :rmdtDate 这里是不是要
    like :rmdtDate 啊?
      

  2.   

    试过了,like 不行。   谢谢
      

  3.   

    '#' + Formatdatetime('YYYY-M-D',Now) + '#'

    s_dtToday := '#' + Formatdatetime('YYYY-M-D',Now) + '#';
     
    '+s_dtToday自己比较下,等吗?
      

  4.   

    我一般在将参数直接处理成sql语句,付给query1.sql.text
    这样便于在跟踪错误的时候,直接看到最终的sql语句是否出错!
      

  5.   

    你用参数,你不知道SQL内部对参数是怎么处理的.最好不用VALUE.
    这样Parameters.ParamByName('rmdtDate').Value := TDATETIME;日期型直接用