0

我正在处理呼叫中心项目,我必须在特定时间范围之间同时计算呼叫到达。我必须编写一个具有参数 StartTime、EndTime 和 Interval 的程序

例如:

Start Time: 11:00
End Time: 12:00
Interval: 20 minutes

因此程序应将 1 小时的时间范围分为 3 个部分,每个部分应计算在此范围内开始和完成的到达或开始但尚未完成的到达

应该是这样的:

11:00 - 11:20 15 calls at the same time(TimePeaks)
11:20 - 11:40 21 calls ...
11:40 - 12:00  8 calls ...

任何建议如何计算它们?

4

2 回答 2

2

您可以使用DATEADDGROUP BY的时间跨度:

Select Count(*), DateAdd(Minute, @Interval * (DateDiff(Minute, 0, SomeDate) / @Interval), 0)As Part
From #Temp
Where SomeDate Between @StartTime And @EndTime
Group By DateAdd(Minute, @Interval * (DateDiff(Minute, 0, SomeDate) / @Interval), 0)
ORDER BY Part 

样本数据:

declare @StartTime datetime;
declare @EndTime datetime;  
declare @Interval int;
SET @StartTime = Convert(datetime,'2012-10-19 12:00:00',102);
SET @EndTime = Convert(datetime,'2012-10-19 13:00:00',102);
SET @Interval = 20;

create table #Temp(SomeDate datetime);
insert into #Temp values(Convert(datetime,'2012-10-19 12:05:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:06:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:15:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:25:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:45:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:35:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:37:20',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:15:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:55:00',102));
insert into #Temp values(Convert(datetime,'2012-10-19 12:18:10',102));

这是一个小提琴:http ://sqlfiddle.com/#!3/ee6f9/1/0

于 2012-10-19T10:58:09.457 回答
1

查找 1 小时前范围:

DECLARE @iniz VARCHAR(16), @fine VARCHAR(16), @ades VARCHAR(16)
SET @iniz = convert(varchar(16), dateadd(mi,-(60+(datepart(mi,getdate()))), getdate()),120)
SET @fine = convert(varchar(16), dateadd(mi,-(datepart(mi,getdate())), getdate()),120)
SET @ades = convert(varchar(16),Getdate(),120)

PRINT @iniz + ' - ' + @fine + ' - ' + @ades
于 2012-12-07T11:54:41.307 回答