sqlserver按时间统计每天17:30到第二日17:30为一天的数据

例如:7-1下午17:30到7-2下午17:30的数据总和算作7-2日的数据这样的,如何写语句呢?... 例如:7-1下午17:30到7-2下午17:30的数据总和算作7-2日的数据这样的,如何写语句呢? 展开
 我来答
badkano
2013-08-07 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部

比如表里数如下

create table t 
(begin_time datetime,
hj int)


insert into t values ('2013-07-01 00:00:00',10)
insert into t values ('2013-07-01 17:00:00',20)
insert into t values ('2013-07-01 18:00:00',24)
insert into t values ('2013-07-02 13:00:00',45)

 

这里要求统计两个区间,也就是前两条一个区间,后两条一个区间

select a.rq,sum(b.hj) hj
from
(select 
convert(varchar(10),cast('2013-07-01 00:00:00' as datetime)+number,120) rq, 
cast(replace(convert(varchar,dateadd(d,-1,cast('2013-07-01 00:00:00' as datetime)+number),120),'00:00:00','17:30:00') as datetime) begin_time,
cast(replace(convert(varchar,dateadd(d,0,cast('2013-07-01 00:00:00' as datetime)+number),120),'00:00:00','17:30:00') as datetime) end_time
from master..spt_values where type='P') a,
t b
where b.begin_time >= a.begin_time and b.begin_time<a.end_time
group by a.rq

其中括号里被命名为a的那堆,你可以拿出来单独运行一下,看看结果,实际上是一个算时间区间的东西

 

这个最后的结果就是

 

 

领会一下精神,不懂再问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-08-07 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5149万
展开全部
是每一天都是前一天的17:30到当天的17:30算作当天的数据吗
追问
对  要统计一段时间的数据
追答
select datediff(s,'2013-07-01 17:30','2013-07-02 00:00')--23400
--下面为了计算天数包含17:30这个点,减少了1s
select convert(varchar,dateadd(s,23399,time),23) 日期,count(1)
from tb
group by convert(varchar,dateadd(s,23399,time),23)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式