数据库表我是检测本地电脑时间是否在(开始时间s_time)和(结束时间e_time)之间第一种语句
qry2.Close;
qry2.SQL.Clear;
qry2.SQL.Add('select * from Q_买几送几 where b_bqty='''+caipinname+''' and '''+FormatdateTime('tt',s_time)+'<'+FormatdateTime('tt',Now)+''' and '''+FormatdateTime('tt',Now)+'<'+FormatdateTime('tt',e_time)+'''');
qry2.Open;
第二种语句
qry2.Close;
qry2.SQL.Clear;
qry2.SQL.Add('select * from Q_买几送几 where b_bqty='''+caipinname+''' and s_qty=1 and '+FormatdateTime('tt',s_time)+'<'+FormatdateTime('tt',Now)+'<'+FormatdateTime('tt',e_time)+'');
qry2.Open;
这2种方法,不管我怎么修改本地电脑时间,qry2都不是eof.,都可以通过,不知道我哪里错了呢??

解决方案 »

  1.   


    where tdate between'+'datatostr(datetimerpicker1.date) and datetostr(datetimerpicker2.date)'); 参考下 用between
      

  2.   

    between是用于一个字段的吧,一个字段都有开始时间和结束时间可我的是开始时间和结束时间是2个字段的呀
      

  3.   

    还有 我动觉得你的代码看着不舒服 with qry2 do 
    begin
    Close;
    SQL.Clear;
    SQL.Add('select * from Q_买几送几 where b_bqty=:caipinname and s_qty=1 and (:timenow between :s_time and :e_time)');
    Parambyname('caipinname'):=caipinname ;
    Parambyname('timenow'):=FormatdateTime('tt',Now);
    ....  //写下看吧 s_time e_time...
    Open;
    end;