我使用:
  FDate := DateTimePicker1.Date;
  ADate := DateTimePicker2.Date;
  s := 'select * from CTDC where (D_XFRQ>=:bedat)and(D_XFRQ<=:endat)';
  qryMaster.DisableControls;  qryMaster.Close;
  qryMaster.SQL.Clear;
  qryMaster.SQL.Add(s);
  qryMaster.parambyname('bedat').value:=FDate;
  qryMaster.parambyname('endat').value:=ADate;
  qryMaster.Prepare;
  qryMaster.Open;  qryMaster.EnableControls;
查询数据时时间间隔只有两天的话就找不到数据,间隔长点就可以。这是什么毛病?
我总不能不让用户查询近两天的数据吧!

解决方案 »

  1.   

    对了,不要说换成between...and...来查询,我早试过了,效果是一样的。
      

  2.   

    FDate := DateTimePicker1.Date;
    ADate := DateTimePicker2.Date;
    fdate.time:=encodetime(00,00,00,00);
    adate.time:=encodetime(23,59,59,59);
    试试
      

  3.   

    fdate.time:=encodetime(00,00,00,00);
    adate.time:=encodetime(23,59,59,59);
    这两句根本不可能编译通过吧!
      

  4.   

    TDateTimePicker 有个time属性, 这个也要赋值的. 比较时是 date + time
      

  5.   

    问题已经解决,但是又有点新问题。由于小弟分不够多,就不再开帖问。望大家包涵一下
    用TDateTimePicker.Time取出的时间值在存如数据库时老把日期带上,还有时间也不对。
    我数据库里定义的是DateTime型的,存储时使用
    1:
    qryYdcy.FieldByName('D_SYSJ').AsString := TimeToStr(dtpTime.Time);
    2:
    qryYdcy.FieldByName('D_SYSJ').AsDateTime := dtpTime.Time;
    两种方法都不成,怎么办?