按每天特定时间作为分界来统计数据的sql语句[sqlserver]

SQL统计特定时间段数据
本文介绍了一种使用SQL语句来统计每天特定时间段内数据的方法,通过将时间向前平移来实现以8:30为分界的每日数据汇总。
字段:时间dt   ,  数量 num   
要求:  求每天以8:30分为界统计每天数量的和
sql

select CONVERT(char(10),dateadd(minute,-510,dt),120),SUM(num) from table group by
CONVERT(char(10),dateadd(minute,-510,dt),120);

dateadd(minute,-510,dt)为把时间前移510分钟,即8小时30分

思路:不改变数据的前提下,把时间点减去时间差,将起始时间移到0点作为新伪列,即可以新伪列像平常一样按天分组;

 时间                                      数量                               新时间
2017-7-5 8:30:00                    30                        2017-7-5 0:00:00     
2017-7-5 16:00:00                  26                        2017-7-5 7:30:00
2017-7-6 5:31:02                    77                        2017-7-5 9:01:02

上图看出,3条数据都是在2017-7-5 8:30:00至2017-7-6 8:29:29之间,即算作2017-7-5同一天的数据,时间偏移后,新时间更直观地看出3条数据为2017-7-5的数据,新时间并不是真实时间,而是代表数据所属的时间区间,只需要把时分秒去掉即可

相当于

时间                                      数量                               新时间
2017-7-5 8:30:00                    30                        2017-7-5   
2017-7-5 16:00:00                  26                        2017-7-5 
2017-7-6 5:31:02                    77                        2017-7-5 


执行上面SQL语句得出

2017-7-5        133 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值