declare @tab table(a int,b int,c datetime)
insert @tab values(1,200,'2005-8-17 15:25:08')
insert @tab values(2,500,'2005-8-16 10:26:43')
insert @tab values(3,600,'2005-8-19 3:26:38')
insert @tab values(4,350,'2005-8-19 10:26:30')
select * from @tabselect sum(b) from @tab where c<'2005-8-19 3:26:38'select sum(b) from @tab where c<'2005-8-19 10:26:30'--楼主,你的思路没错啊,是不是参数错了??
insert @tab values(1,200,'2005-8-17 15:25:08')
insert @tab values(2,500,'2005-8-16 10:26:43')
insert @tab values(3,600,'2005-8-19 3:26:38')
insert @tab values(4,350,'2005-8-19 10:26:30')
select * from @tabselect sum(b) from @tab where c<'2005-8-19 3:26:38'select sum(b) from @tab where c<'2005-8-19 10:26:30'--楼主,你的思路没错啊,是不是参数错了??
select a,(select sum(b) from 表 where c<a.c),c
from 表 c
where c='2005-1-1' --选出记录的条件
b=(select sum(b) from 表 where c<a.c), --b 为比选出记录c字段小的记录的sum(b)
c
from 表 c
where c='2005-1-1' --选出记录的条件
set @d='2005-8-19 3:26:38'
select sum(b) from t where convert(varchar,c)<@d and
convert(varchar,c,108)>convert(varchar,@d,108)
2005-08-17 15:25:08.000
2005-08-19 10:26:29.670
2005-08-19 12:53:01.293
而我们的程序从数据库中取出来的时间是不包含毫秒信息的,这就造成了时间上查询的错误。
现在我用where datediff(millisecond, c, @enddate) > 1000,也就是把时间同数据库中的时间做比较,取时间差1秒以上的为准,从而解决问题。