您需要使用为项目预算的天数作为除数,而不是计划的完成日期。
在 SQL Server 或任何其他上下文中,除以日期没有数学意义,因为日期是一个间隔测量尺度。这意味着没有有意义的零,因此时间比例只能对一小部分时间有意义。
在您的示例中,由于您说错过一个项目一年会丢失 100%,您的计算应该是: (6/15/2013 - 5/1/2013) / 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,就像您在几个小时内所做的那样。如果您切换到另一个时间间隔进行除数,您还必须切换除数。