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

Posted

技术标签:

【中文标题】计算两个日期之间的平均天数【英文标题】:Calculate average days between two dates 【发布时间】:2021-02-24 09:14:24 【问题描述】:

我有下表:

Team PhoneNumber OrderNo CallDate OrderDate
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)

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

【问题讨论】:

另外,CallDateOrderDate 中没有时间部分,因此计算“时间”(以分钟、秒为单位?)似乎毫无意义。充其量您将能够获得平均天数。 @Larnu 我的错我忘了包含查询 那么您的代码有什么问题?请显示您的实际结果和预期结果。 请分享您想要的输出。 @Larnu 我想计算 CallDate 和 OrderDate 之间的差异,然后应用每个团队每个月的平均值。 【参考方案1】:

数据中没有时间部分,那么您打算如何计算时间?您想将天数乘以 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')

输出:

计算工作时间差(每天 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')

【讨论】:

我更新了我的问题:我想计算 CallDate 和 OrderDate 之间的差异,然后应用每个团队每个月的平均值。 请检查我的答案中的输出是否是您想要的。

以上是关于计算两个日期之间的平均天数的主要内容,如果未能解决你的问题,请参考以下文章

oracle 日期计算

C++ 计算两个日期之间的天数

c#如何计算两个日期之间相隔天数

SQL是计算两个日期相差多少天数的函数?

如何写计算两个日期之间的天数函数

Excel中计算两个日期之间的天数,扣除周六周日