用一个datetiempicker1来选日期,如02年12月1日。然后查询时间为02年12月1日的记录,但因为数据库中该时间字段类型为datetime,它默认为日期时间,查询的时候我用等号来匹配查询,它精确到时间,所以查不出任何记录。我想要查询该天的记录,从0:0分到23:59分,请问该怎么办????急!!!!

解决方案 »

  1.   

    只取日期就行了,sql语句datetimefield日期字段
    '...where left(datetimefield,8)='+datetostr(datetimepicker1.date)
    或者paradox库用copy取出来比较即可
      

  2.   

    datetimepicker1.date 为日期,应该可以
      

  3.   

    截去datetiempicker1的时间部分,再赋给查询变量就可以了
      

  4.   

    用两个参数STARTDATE,ENDDATE
    FIELD >= :StartDate and Field <= EndDate传入参数时 只取日期即可。、建议:有关日期的查询最好用参数
      

  5.   

    在SQL语句里用LIKE关键字不就行了
      

  6.   

    var
    ss:string;ss:=datetimepicker1.date;
    adoseq.add(
    select xxx 
    from table1
    where sj like '''+ss+[0.00-23.59]''');
    未运行过,但方法可行。
      

  7.   

    with ADOQuery1 do
      begin
        Active:=False;
        sql.clear;
        sql.add('select * from 表名 ');
        sql.add('where sj like :a );
        parambyname('a').asstring:=Formatdatetime('yyyy-mm-dd',datetimepicker1.datetime);
      end;
      

  8.   

    StrToDate(DateToStr(datetimepicker1)) 这样就只剩下date没有time了
      

  9.   

    你用两个DataTimePicker一个设置为当天的0:0 另一个为23:59你在SQL中比较时最好用两个参数把两个DataTimePicker的DataTime记录下来
    再用参数与字段值做比较,记得要显式设置SQL中的参数的类型 好象是stDataTime 你还是看一下帮助比较保险
      

  10.   

    var d,v:string;
       d:=datetostr(datetimepicker1.date)+' 00:00:00.000';
       v:=datetostr(datetimepicker1.date)+' 23:59:59.000'; 
       Query1.Close;
       query1.SQL.Clear;
       Query1.SQL.Text:='Select * from table ';
       query1.SQL.Add('and indate>=:ddd and indate<:v');