数据库中的数据如图所示:
取数据的规则:
1、以“2012-02-27 11:30:00.000”到“2012-02-27 12:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-27 12:00:00.000”时间点的值。2、以“2012-02-27 12:30:00.000”到“2012-02-27 13:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-27 13:00:00.000”时间点的值。3、以“2012-02-27 00:30:00.000”到“2012-02-27 01:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-27 01:00:00.000”时间点的值。4、以“2012-02-27 23:30:00.000”到“2012-02-28 00:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-28 00:00:00.000”时间点的值。问题:传入某天“2012-02-27”,怎么获取该天“24小时”整点时候的数据呢?
取数据的规则:
1、以“2012-02-27 11:30:00.000”到“2012-02-27 12:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-27 12:00:00.000”时间点的值。2、以“2012-02-27 12:30:00.000”到“2012-02-27 13:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-27 13:00:00.000”时间点的值。3、以“2012-02-27 00:30:00.000”到“2012-02-27 01:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-27 01:00:00.000”时间点的值。4、以“2012-02-27 23:30:00.000”到“2012-02-28 00:30:00.000”之间记录的“Qty”的平均值,做为“2012-02-28 00:00:00.000”时间点的值。问题:传入某天“2012-02-27”,怎么获取该天“24小时”整点时候的数据呢?
update tb set qty = (select avg(qty) from tb where abs(datediff(mi , datime , t.datime)) <= 30) from tb t where datepart(mi,datime) = 30--如果不能确定秒都为0
update tb set qty = (select avg(qty) from tb where abs(datediff(mi , datime , t.datime)) <= 30) from tb t where datepart(mi,datime) = 30 and datepart(ss,datime) = 0
非常3Q...
“Update”岂不是把表中的数据都改了,“Select”可以么?
--问题:传入某天“2012-02-27”,怎么获取该天“24小时”整点时候的数据呢?
declare @date datetimeset @date='2012-02-27'
select avg(Qty) as Qty from tb
where DATime between @date and dateadd(dd,1,@date)