在dbgird里面,上一次我们是用adoquery1.Locate('tenementname',edit1.Text,[loCaseInsensitive]); 查询符合条件的记录,并将游标移到符合条件记录的第一条(用edit1输入查询条件)这次实现的功能也是一样,不过输入查询条件是用DateTimePicker1,在数据表里面“进货时间”的类型为datetime,存储的格式如:2008-03-19 下午 10:25:17
给我写出具体的代码,因为我自己试过了,都会出错。所以,没写代码跟没回答一个样!谢谢大家了 !

解决方案 »

  1.   

    还有一个问题就是:如何对datatimepicker的年月日分开提取???
      

  2.   

    不知道你用的数据库是不是sqlserver
    如果是sqlserver这要这样写
      adoquery1.Locate('creation_date',formatdatetime('yyyy-mm-dd',datetimepicker1.DateTime)+' 00:00:00.000',[loCaseInsensitive]);
      

  3.   

    年月日要分开,用formatdatetime来分别取,或者你到delphi的DateUtil这个单元中,有许多关于时间的函数.
      

  4.   

    在locate中有两个参数 loPartialKey ,loCaseInsensitive,用第一个就能满足你的时间的需求.
    如下:
      adoquery1.Locate('creation_date',formatdatetime('yyyy-mm-dd',datetimepicker1.DateTime),[loPartialKey]);
      

  5.   

    不行啊 都没反应!无派这样写就可以  with adoquery1 do
      begin
        first;
        while not eof do
        begin
          if fieldvalues['进货时间']>formatdatetime('YYYY-MM-DD',DateTimePicker1.Date)  then break;
          next;
        end;
      end;不够这样写等下标记记录就比较麻烦!
    进货时间在数据库里面我是定义成datetime类型,格式是:2008-03-19 下午 10:25:17 能不能够我换成adoquery1.Locate();????可能就是第二个参数那里出错