保存之前用Trunc把时间取掉
ADOBook.fieldByname('mdate').value := Trunc(DateTimePicker.date);
然后查询的时候'select * from Book where ChuDate:=:chu';
ADOBook.paramByname('chu').value := Trunc(DateTimePicker.date);
就没问题了

解决方案 »

  1.   

    可以参考如下方法:
    select * from Book where ChuDate=convert(varchar(10),日期变量,120)

    select * from Book where convert(varchar(10),ChuDate,120)=convert(varchar(10),日期变量,120)
    或者用between...and来查询
    select * from book where chudate=between convert(varchar(10),日期变量,120) and convert(varchar(10),日期变量,120)
    都可以
    具体的convert函数使用可以参阅sql server的help!
      

  2.   

    SQL语句里有Year,month,day函数自己想去
      

  3.   

    楼上说了,还可以用like'select * from Book where ChuDate like :chu';
    ADOBook.paramByname('chu').value := '%'+FormatDateTime('yyyy-mm-dd',DateTimePicker.date)+'%';
      

  4.   

    我的 办法:
    .... 
    ...
    query1.sql.add('field_time='+''''+dyear(datetimepicker1.Date)+'/'+
                           dmonth(datetimepicker1.Date)+'/'+
                           dday(datetimepicker1.Date)+''''+
    .... ....省略
    以下是我的几个自定义函数:
    FUNCTION dYEAR(LdateTIME:TDATETIME):STRING;
    var new_Y:STRING;
    BEGIN
      datetimetostring(new_Y,'yyyymmdd',LdateTime);
      result:=copy(new_Y,1,4);
    END;FUNCTION dMONTH(LdateTIME:TDATETIME):STRING;
    var new_M:STRING;
    BEGIN
      datetimetostring(new_M,'yyyymmdd',LdateTime);
      result:=copy(new_M,5,2);
    END;FUNCTION dDAY(LdateTIME:TDATETIME):STRING;
    var new_D:STRING;
    BEGIN
      datetimetostring(new_D,'yyyymmdd',LdateTime);
      result:=copy(new_D,7,2);
    END;