计算两个日期之间的平均天数
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 之间的差异和 然后为每个团队应用每个月的平均值。
【问题讨论】:
另外,CallDate
和 OrderDate
中没有时间部分,因此计算“时间”(以分钟、秒为单位?)似乎毫无意义。充其量您将能够获得平均天数。
@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 之间的差异,然后应用每个团队每个月的平均值。 请检查我的答案中的输出是否是您想要的。以上是关于计算两个日期之间的平均天数的主要内容,如果未能解决你的问题,请参考以下文章