2013-10-23 36 views
0

计算%精度:计算%精度:(实际日期 - 计划日期)/计划日期在MS SQL 2010或2013

(实际日期 - 计划日期)/计划日期〜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%) 
+2

那么相对于一年错过的百分比是多少?因此,如果我的计划部署日期为2013年5月1日,而实际部署日期为2014年5月1日,它是否错过了100%?一般来说,这似乎是一种奇怪的方法来量化这种情况,因为你本质上是采取任意值来定义比例。为什么不跟踪天数的差异? –

+0

如果实际日期和计划日期相同,该怎么办? – Malachi

+0

如果实际日期和计划日期相同......您处于0%。你打了你的约会。 – user2912796

回答

0

您需要将项目的预算天数用作除数而非计划完成日期。

按日期划分并不意味着数学意义,因为日期是interval measurement scale.这意味着没有有意义的零,因此时间的比例只有对于小的时间子集才有意义。

在你的榜样,因为你说,在一年缺少一个项目将是100%它缺少你的计算应该是: (2013年6月15日 - 2013年5月1日)/ 365 * 100 或者在SQL Server的东西是这样的: SELECT(DATEDIFF(DAY,'2013-06-15','2013-05-01')/ 365)* 100

这给你的天数完成项目和预计的天数。

如果您要将该sql语句中的365替换为2013-05-01日期,您将得到与您期望的内容完全不同的内容,因为再次没有实际的零,所以sql server已经任意选择了一个。

在您的预算小时例如,你永远不会表达(3000 - 1000)/ 1000为(3000 - 1000)/ 2013年5月1日

但是,这正是你试图在你的日期计算什么,只是在不同的时间范围内。

天的差异是正确的。但是它是由(几天,几周,几个月......)的百分之几。百分之几(几天,几周,几个月......无所谓),你错过了。 - user2912796

这很重要。如果您想要在几天内获得结果并且在几天内获得分红,您就可以插入365,就像您在几个小时内完成的那样。如果您切换到另一个时间间隔的股息,您还必须切换除数。

+0

谢谢比尔..很有帮助! – user2912796

+0

如果我的回答有帮助,请考虑将其标记为已接受的答案。否则,你可以留下另一条评论,让我知道这个答案仍然缺失。谢谢。 –