DataTimePicker1  和 DataTimePicker2  一个按扭查询在日期1和日期2中的数据,如果两个数据在同个 月内,没问题,但是如果选择了1的时间为9月 ,则查询出错。(2的时间默认为今天,10月2日。)1的时间为9月,2 的时间也为9月时,查询也没问题。后来做了一个比较 a:=datetostr(DataTimePicker1)  b:=datetostr(DataTimePicker2) 发现如果1的时间月份比2的早的话,a>b 成立。请叫高手为什么会这样?

解决方案 »

  1.   

    难道DataTimePicker1 选9月 DataTimePicker2选10月,这个不是时间差吗?为什么系统不能判断呢。但同样的 DataTimePicker1选10月1号。DataTimePicker2选10月2号,查询又没问题。
      

  2.   

    解决了 , 谢谢loveMit ,给了 我灵感。贴出我的代码。让和我一样初学者找到迷失的路。 a 和b是string类型的比较大小的时候要注意。datetimepicker1.datetime可以直接比较。
          a:=DateToStr(dtp4.DateTime);
         b:=DateToStr(dtp5.DateTime);
         if dtp4.DateTime>dtp5.DateTime then
         begin
           ShowMessage('日期选择错误,请重新选择!');
           Exit;
         end;
         qry1.Close;
         qry1.SQL.Clear;
         qry1.SQL.Add('select * from 销售定单表 where 下定日期>='''+a+''' and 下定日期<='''+b+''' order by 下定日期 ');
         qry1.Open;