计算百分比准确度:(实际日期 - 计划日期)/计划日期在 ms sql 2010 或 2013 中

Posted

技术标签:

【中文标题】计算百分比准确度:(实际日期 - 计划日期)/计划日期在 ms sql 2010 或 2013 中【英文标题】:Calculate % Accuracy: (Actual Date - Plan Date) / Plan Date IN ms sql 2010 OR 2013 【发布时间】:2013-10-23 19:11:31 【问题描述】:

计算百分比准确度:

(实际日期 - 计划日期)/计划日期 ~ 超过或低于 4.2%,具体取决于日期。

我有一个datediff 用于除数,但没有除数。

我可以在 excel 中执行,但不能在 sql 中执行。

您的估计有多准确?

Plan Deploy Date = 5/1/2013

Actual Deploy Date = 6/15/2013

Algorithm = (Actual Date - Plan Date) / Plan Date

(6/15/2013 - 5/1/2013) / 5/1/2013 *100.0 = 10.9% (missed plan date by approx 11%)

【问题讨论】:

那么错过的百分比与一年有关吗?因此,如果我的计划部署日期为 2013 年 5 月 1 日,而实际部署日期为 2014 年 5 月 1 日,那么它是否错过了 100%?一般来说,这似乎是一种奇怪的量化方式,因为您实际上是在使用任意值来定义比例。为什么不只跟踪天数的差异? 如果实际日期和计划日期相同怎么办? 如果实际日期和计划日期相同...您处于 0%。约会成功了。 如果您错过一年......是的,它是 100% 的折扣。这对于成本或工作量来说是一样的。您计划消耗 1000 小时,而您“实际上”消耗了 3000 小时。所以,3000 - 1000 / 1000 = 200% 折扣。基本上,你低估了你的资源消耗200%!!。有道理。 天数的差异是正确的。但它是(天,周,月......)的百分比。您错过了多少百分比(天、周、月……无关紧要)。 【参考方案1】:

您需要使用为项目预算的天数作为除数,而不是计划的完成日期。

除以日期在 SQL Server 或任何其他上下文中没有数学意义,因为日期是 interval measurement scale. 这意味着没有有意义的零,因此时间比例只能对一小部分时间有意义。

在您的示例中,由于您说错过一个项目一年将丢失 100%,您的计算应该是: (2013 年 6 月 15 日 - 2013 年 5 月 1 日)/ 365 * 100 或者在 SQL Server 中类似: 选择(日期(日期,'2013-06-15','2013-05-01')/ 365)* 100

这为您提供了完成项目所需的天数与预期天数的比率。

如果你用日期 2013-05-01 替换那个 sql 语句中的 365,你会得到与你期望的非常不同的东西,因为时间又没有真正的零,所以 sql server 随意选择了一个。

在您的预算小时数示例中,您永远不会将 (3000 - 1000) / 1000 表示为 (3000 - 1000) / 5/1/2013

但这正是您在日期计算中尝试的,只是在不同的时间范围内。

天数的差异是正确的。但它是(天,周,月......)的百分比。你错过了多少百分比(天,几周,几个月......没关系)。 – 用户2912796

这很重要。当您想要以天为单位的结果和以天为单位的股息时,您插入 365,就像您在几个小时内所做的那样。如果您切换到另一个时间间隔进行除数,您还必须切换除数。

【讨论】:

谢谢比尔..非常有帮助! 如果我的回答有帮助,请考虑将其标记为已接受的答案。否则,您可以发表另一条评论,让我知道这个答案仍然缺少什么。谢谢。

以上是关于计算百分比准确度:(实际日期 - 计划日期)/计划日期在 ms sql 2010 或 2013 中的主要内容,如果未能解决你的问题,请参考以下文章

计算日期之间的天数,不计算周六和周日[重复]

U9 各时界日期的含义

02.规划过程组表格-进度管理计划

关于PROJECT实际完成百分比的问题

当案例计划日期<今天 sql server & mysql

SQL 执行计划 - 估计计划似乎比实际计划更准确