数据库是access的 
mydate:Tdate;
mydateset_j:=TADODataSet.Create(self);
mydateset_j.Connection:=self.ADOConnection1;
mydateset_j.Active:=false;
mydateset_j.CommandText:='select * from mytable 'where rq ='+mydate+ ' order by rq desc');
 mydateset_j.Active:=true;数据库中明明有记录,但是 mydateset_j.RecordCount返回为0
而换成
mydateset_j.CommandText:='select * from mytable 'where rq ='+mydate+ ' order by rq desc');
mydateset_j.RecordCount 却能得到结果。
想不通,谁来给我解释解释阿

解决方案 »

  1.   

    跟正:没有的是
    mydateset_j.CommandText:='select * from mytable where rq <='+mydate+ ' order by rq desc'); 
    由结果的是:
    mydateset_j.CommandText:='select * from mytable where rq >='+mydate+ ' order by rq desc');
     
      

  2.   

    你没注意到你的选择条件改变了吗?
    where rq <= mydate和>=. 说明你数据库里没用满足<=的, 所以没有返回结果...
      

  3.   

    mydateset_j.CommandText:='select * from mytable where convert(char,rq,112) >='+mydate+ ' order by rq desc');                      ^sqlserver应该这样
    mydate也为string;
    如果你数据库里有满足条件的记录就能出来
    不过我说的是sqlserver \access不太用,给你做个参考,去看看access的帮助,是不是也可以
      

  4.   

    formatdatetime(data);
    要把时间转成string;
    你的数据库中应该是string类型的吧?
      

  5.   

    记录是有的,数据库中是datetime 类型