读书人

帮小弟我看下这句查询语句有什么有关问

发布时间: 2012-03-08 13:30:13 作者: rapoo

帮我看下这句查询语句有什么问题
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里面找到了,怎么回事呢?



[解决办法]
没有查到那可能是其他条件的问题,你一个条件一个条件的排除吧
[解决办法]
时期时间格式适用between
sql:='select count(*) as 出车车辆,sum(zhuangzl) as 出车重量 from dzhyb where zhanneisj is not null and zhanneisj between qssj and zzsj and bzw=0';
[解决办法]
你的字段类型设置的是日期型的吗?
[解决办法]
qssj 和 zzsj 是字符型的 你数据库里的zhanneisj 也是用字符型存的吗?? 最好是转换一下 用BETWEEN查 。
[解决办法]
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;
[解决办法]
确定你的计算机时间是否准确
[解决办法]
我喜欢在设计字段时日期和时间分开放。
[解决办法]
你把6前面加个0试试,象这样:

qssj:=datetostr(now)+' 06:00:00';

[解决办法]
先查你的时间是不是日期型的,再逐个排除,时间段一般用between查。

读书人网 >.NET

热点推荐