ztf.net.cn
七牛云
您当前的位置: 首页 >  个人博客

SQL Server 根据日期分组、 根据时间段分组(每三个小时一组)

一、根据日期分组

  1. 使用convert() 函数方式
select convert(varchar(7),CreatTime,120)日期,COUNT(*) 次数,sum(Money)总数 
from Orders
group by convert(varchar(7),CreatTime,120)

根据convert 的第一个参数,设置结果的长度达到更具年月分组或年月日分组等

2017-09 长度 7 varchar(7)

2017-09-01 长度10 varchar(10)

select convert(varchar(10),CreatTime,120)日期,COUNT(*) 次数,sum(Money)总数 
from Orders
group by convert(varchar(10),CreatTime,120)



2. 先查出对应的年月日等时间,再根据查询出的字段分组

select YEAR(CreatTime) 年,month(CreatTime) 月,COUNT(*) 次数,sum(Money)总数 
from Orders
group by month(CreatTime),YEAR(CreatTime)
order by 年,月 asc

二、根据时间段分组(每三个小时一组)

dataname:返回代表指定日期的指定日期部分的字符串。一个参数代表返回的格式,第二个参数为具体值

dw:星期几,qq, q:季度,yy, yyyy:年,mm,m:月,dd、d:日,hh:小时,mi, n:分钟 ss、s:秒,ms:毫秒

select CONVERT(varchar(11),
   convert(varchar(2),datename(hh,CreatTime) / 3 *3)+':00~'+
   convert(varchar(2),row_number() over(order by datename(hh,CreatTime) / 3)*3-1)+':59'
) 时间段,COUNT(*)次数,sum(Money)总数 
from Orders
group by datename(hh,CreatTime) / 3

三 按日期加小时分组

select convert(varchar(13),create_time,120)日期,COUNT(*) 次数 
from IVR_SESSION_E2
group by convert(varchar(13),create_time,120)
order by convert(varchar(13),create_time,120)


ZTF

ZTF|时间:2022-04-22

如果缘分安排我们相遇,请不要让她擦肩而过。扫一扫二维码,加我为好友吧!
标签云