回 帖 发 新 帖 刷新版面

主题:数据库查询问题,大家帮帮忙!!!

有一数据库,每5分钟存储一次数据,如下

字段
时间                       数值
2007-01-01 10:00:00        33.6
2007-01-01 10:05:00        8.8
2007-01-01 10:10:00        13.9
2007-01-01 10:15:00        21.6
2007-01-01 10:20:00        33.6
      .
      .
      .
2007-01-03 10:00:00        22.6



现在要将过去某段时间的每个正点数据(即分为00)相加,最简单有效的查询语句是什么?在线等!

回复列表 (共15个回复)

沙发

Select * From Table Where 数值-int(数值)=0.0

板凳

select sum(数值) from 表的名字 where (时间*24) mod 1=0

sum(数值):就是对“数值”列求和;
where (时间*24) mod 1=0:就是条件为整小时(这里没有使用分钟为零判断,而是使用一天的24分之一来判断)

3 楼

where (时间*24) mod 1=0
以上条件不是永远都成立吗?

4 楼

再请教,我需要读取某段时间内正点数据值的和(如过去一天的就是1点数值+2点的数值,中间的分钟资料不累加)!

5 楼

不家一疑问: 时间*24 是什么意思,是指小时*24?

6 楼

where datepart(n,时间)=0不就得了

7 楼

[quote]再请教,我需要读取某段时间内正点数据值的和(如过去一天的就是1点数值+2点的数值,中间的分钟资料不累加)![/quote]


Select Sum(数值) From Table Where 数值-int(数值)=0.0 And 时间范围

必要时加Group By。

8 楼

时间,单位是“日”。所以如上。

9 楼

关于某段时间,可以在条件里添加:
and 时间>#2007-12-01 00:00:00# and 时间<#2007-12-31 24:00:00#

10 楼

华山老弟,他说的正点是时间,而不是数值为整数。
就是说每日取0点、1点、2点……22点、23点这24个时刻的数值相加。
当然,关于这个也可以使用
select sum(数值) from 表的名字 where minute(时间)=0 and 时间>=#开始时间# and 时间=<#结束时间#

我来回复

您尚未登录,请登录后再回复。点此登录或注册