计算两个日期之间的平均天数

Mar*_*mes 2 sql t-sql sql-server average

我有下表:

团队 电话号码 订单号 通话日期 订购日期
TM1 2222222222 26699443 2021-01-28 2021-02-05
TM1 1111111111 26699450 2021-01-22 2021-01-22
TM2 5555555555 26699466 2021-02-22 2021-02-23
TM2 5555555555 26699467 2021-01-22 2021-02-01
TM3 7777777777 26699488 2020-12-10 2021-01-03

我想计算每个团队每个月从电话到订单的平均时间。这是我的查询:

SELECT 
    Team,
    MONTH(CallDate),
    AVG(DATEDIFF(day,CallDate,OrderDate))
FROM MyTab AS C 
GROUP BY Team, MONTH(CallDate)
Run Code Online (Sandbox Code Playgroud)

我想计算 CallDate 和 OrderDate 之间的差异,然后为每个团队应用每个月的平均值。

Kaz*_*Nur 5

数据中没有时间部分,所以您打算如何计算时间?您想将天数乘以 24 还是 8(官方时间)?请提一下。如果 orderdate 和 calldate 是同一日期,那么 day 是 0 还是 1?我认为它是1天。

计算日差:

SELECT 
    Team,
    format(CallDate,'yyyy-MMMM') Month,
    AVG(DATEDIFF(day,CallDate,OrderDate)+1) AverageDayTaken
FROM MyTab AS C 
GROUP BY Team, format(CallDate,'yyyy-MMMM')
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

计算工时差(每天8小时):

SELECT 
    Team,
    format(CallDate,'yyyy-MMMM') Month,
    AVG(DATEDIFF(day,CallDate,OrderDate)+1)*8 AverageWorkingHourTaken
FROM MyTab AS C 
GROUP BY Team, format(CallDate,'yyyy-MMMM')
Run Code Online (Sandbox Code Playgroud)