计算百分比准确度:(实际日期 - 计划日期)/计划日期在 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 中的主要内容,如果未能解决你的问题,请参考以下文章