我是access建的库,内容如下:
     ycr    yc_time      fy
   1 kk     2002-12-01   5
   2 yy     2002-12-01   5
   3 cc     2002-12-01   5
   4 kk     2002-12-02   5
   5 yy     2002-12-02   5
   6 cc     2002-12-02   5
我用这段程序
dm.yc.Close;
dm.yc.SQL.Clear;
dm.yc.SQL.Add('select ycr,sum(fy) as hj  from yc where yc_time>=:a and yc_time<=:y group by ycr');
dm.yc.ParamByName('a').Asdatetime:=datetimepicker1.Date;
dm.yc.ParamByName('y').Asdatetime:=datetimepicker2.Date;
dm.yc.Open; 
来统计2002-12-01到2002-12-02这两天的费用情况。
可是统计的结果总是不对
如果统计一天,比如2002-12-02这天,结果什么也没统计到,请问为什么

解决方案 »

  1.   

    dm.yc.Close;
    dm.yc.SQL.Clear;
    dm.yc.SQL.Add('select ycr,sum(fy) as hj  from yc where yc_time between :a and :y group by ycr');
    dm.yc.ParamByName('a').Asdatetime:=datetimepicker1.Date;
    dm.yc.ParamByName('y').Asdatetime:=datetimepicker2.Date;
    dm.yc.Open; 
      

  2.   

    dm.yc.Close;
    dm.yc.SQL.Clear;
    dm.yc.SQL.Add('select ycr,sum(fy) as hj  from yc where yc_time between :a and :y group by ycr');
    dm.yc.ParamByName('a').Asstring:=Formatdatetime('yyyy-mm-dd',datetimepicker1.Date);
    dm.yc.ParamByName('y').Asstring:=FormatdateTime('yyyy-mm-dd',datetimepicker2.Date);
    dm.yc.Open; 这样试试
      

  3.   

    这是因为你的数据库中的yc_time的值的格式为2002-12-02 08:05:25:000你又把它设置为了Date类型,所以就会。所以你就要用Formatdatetime来控制它的格式~~~~~~~~
      

  4.   

    哦,谢谢,顺便再问最后一句,那我在往库里存记录的时候,我一般都这么用
    dm.yc.ParamByName('a').Asdatetime:=datetimepicker1.Date;用这条语句负值,那是不是我因该用Formatdatetime来控制它的格式呢,或者被的什么问题