delphi连access 
 今天是4月20日。
 qssj:=datetostr(now)+' 6:00:00';
   zzsj:=datetostr(now)+' 18:00:00';
(这时qssj应该是2010-4-20 6:00:00,zzsj是2010-4-20 18:00:00)
sql:='select count(*) as 出车车辆,sum(zhuangzl) as 出车重量 from dzhyb where zhanneisj is not null and zhanneisj<= #'+zzsj+ '# and zhanneisj>= #'+ qssj + '# and bzw=0';我录入的zhanneisj是2010-4-20 17:40:36它应该在这个范围之内呀,可是没有查到。
而在2010-4-19 18:00 到2010-4-20 6:00:00里面找到了,怎么回事呢?

解决方案 »

  1.   

    时期时间格式适用between
    sql:='select count(*) as 出车车辆,sum(zhuangzl) as 出车重量 from dzhyb where zhanneisj is not null and zhanneisj between  qssj and zzsj and bzw=0';
      

  2.   

    qssj 和 zzsj 是字符型的  你数据库里的zhanneisj 也是用字符型存的吗??  最好是转换一下 用BETWEEN查   。  
      

  3.   

    delphi连access
    我记得不能用Between的 ,那是连SQL2000用的。access的时间比较语句比较特殊;
    你可以查一下相关资料;或者看看下面的语句能不能适合你用,自己再修改一下:
    with ADOQuery1 do
    begin
    ……
    SQL.text:= SQL.text + ' and  zhanneisj>=:TestH' ;
    SQL.text:= SQL.text + ' and  zhanneisj<=:TestE' ;
    parameters.parambyname('TestH').value:=Datetimetostr(qssj); 
    parameters.parambyname('TestE').value:=Datetimetostr(zzsj);
    end;
      

  4.   

    你把6前面加个0试试,象这样:qssj:=datetostr(now)+' 06:00:00';
      

  5.   

    先查你的时间是不是日期型的,再逐个排除,时间段一般用between查。
      

  6.   

    结贴,时间字段类型选错了,选成了char