计算%准确度:
(实际日期 - 计划日期)/计划日期~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%)
答案 0 :(得分:0)
您需要使用项目预算的天数作为除数而不是计划的完成日期。
在SQL Server或任何其他上下文中除以日期没有数学意义,因为日期是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)/ 5/1/2013
但这正是你在日期计算中所尝试的,只是在不同的时间范围内。
天数的差异是正确的。但它是(天,周,月......)的百分比。你错过了百分之几(天,周,月......无关紧要)。 - user2912796
这很重要。如果您希望结果在几天内,并且股息以天为单位,您可以插入365,就像您几个小时一样。如果您切换到红利的另一个时间间隔,您还必须切换除数。