主题:数据库查询问题,大家帮帮忙!!!
zhousanhua
[专家分:0] 发布于 2008-01-11 14:47:00
有一数据库,每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个回复)
沙发
华山论剑 [专家分:5310] 发布于 2008-01-11 15:19:00
Select * From Table Where 数值-int(数值)=0.0
板凳
老大徒伤悲 [专家分:29120] 发布于 2008-01-11 15:31:00
select sum(数值) from 表的名字 where (时间*24) mod 1=0
sum(数值):就是对“数值”列求和;
where (时间*24) mod 1=0:就是条件为整小时(这里没有使用分钟为零判断,而是使用一天的24分之一来判断)
3 楼
zhousanhua [专家分:0] 发布于 2008-01-11 15:55:00
where (时间*24) mod 1=0
以上条件不是永远都成立吗?
4 楼
zhousanhua [专家分:0] 发布于 2008-01-11 15:56:00
再请教,我需要读取某段时间内正点数据值的和(如过去一天的就是1点数值+2点的数值,中间的分钟资料不累加)!
5 楼
zhousanhua [专家分:0] 发布于 2008-01-11 15:57:00
不家一疑问: 时间*24 是什么意思,是指小时*24?
6 楼
kskksk [专家分:620] 发布于 2008-01-11 16:01:00
where datepart(n,时间)=0不就得了
7 楼
华山论剑 [专家分:5310] 发布于 2008-01-11 16:11:00
[quote]再请教,我需要读取某段时间内正点数据值的和(如过去一天的就是1点数值+2点的数值,中间的分钟资料不累加)![/quote]
Select Sum(数值) From Table Where 数值-int(数值)=0.0 And 时间范围
必要时加Group By。
8 楼
老大徒伤悲 [专家分:29120] 发布于 2008-01-11 16:34:00
时间,单位是“日”。所以如上。
9 楼
老大徒伤悲 [专家分:29120] 发布于 2008-01-11 16:37:00
关于某段时间,可以在条件里添加:
and 时间>#2007-12-01 00:00:00# and 时间<#2007-12-31 24:00:00#
10 楼
老大徒伤悲 [专家分:29120] 发布于 2008-01-11 16:43:00
华山老弟,他说的正点是时间,而不是数值为整数。
就是说每日取0点、1点、2点……22点、23点这24个时刻的数值相加。
当然,关于这个也可以使用
select sum(数值) from 表的名字 where minute(时间)=0 and 时间>=#开始时间# and 时间=<#结束时间#
我来回复