DateTime := now;
Date := Trunc( DateTime );
showmessage(datetostr(date));
datamodule100.query1.close;
datamodule100.query1.sql.Clear;
datamodule100.query1.sql.add('select * from shiwu where shoucizhixingshijian='+''''+#date#+'''');
showmessage(datamodule100.Query1.SQL.Text);
datamodule100.Query1.Open;
报错应如何做?

解决方案 »

  1.   

    //DateTime := now;
      //Date := Trunc( DateTime );
      with datamodule100.query1 do
      begin
        close;
        sql.Clear;
        sql.add('select * from shiwu );
        SQL.add(' where convert(varchar(10),shoucizhixingshijian,121)='''+formatdate('yyyy-mm-dd',now)+''' ');
        Open;
      end;
      

  2.   

    关于时间的查询,我觉得最好不用字符串的方式,我后来采用的方式为:
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from table1 where m_time=:p1');
    query1.paremeters[0].values=time;
    query1.open;
    注意,时间参数的一致性,在acess中是datetime
      

  3.   


      ADOQuery1.close;
        ADOQuery1.sql.Clear;
        ADOQuery1.sql.add('select * from shiwu where convert(varchar(10),shoucizhixingshijian,121)='''+datetimetostr(date)+''' ');
        ADOQuery1.Open;121 or 20 or 21 or 120 都行
      

  4.   

    DateTime := now;
    Date := Trunc( DateTime );
    showmessage(datetostr(date));
    datamodule100.query1.close;
    datamodule100.query1.sql.Clear;
    datamodule100.query1.sql.add('select * from shiwu where shoucizhixingshijian=#'+datetostr(date)+'#');
    showmessage(datamodule100.Query1.SQL.Text);
    datamodule100.Query1.Open;