2011-11-29 58 views
2

我需要计算生产力。时间以小时或分钟为单位SQL Server

Productivity = some count/ no of Hrs 

我在HH:MM

例如时间,如果我花时间1 hrs 30 minutes

生产力将是

Productivity = some count/1.3? 

OR

Productivity = some count/1.5? 
+0

1小时30分钟是1.5小时。 – Kevin

回答

3

如果你有1小时30分钟,即1.5小时。你会想利用你的计算为:yourValue/1.5units/Hour

获得生产力,你可能会想是这样的:

SELECT DATEPART(HOUR, @yourTime) + (DATEPART(MINUTE, @yourTime)/60.) AS pHours; 

或更充分地这样的事情,在那里@Time是任务花了多长时间:

SELECT @workAccomplished/
    (DATEPART(HOUR, @Time) + (DATEPART(MINUTE, @Time)/60.)) AS Productivity; 

如果你除以1.3,你会计算1小时18分钟,因为0.3小时= 18分钟。

0
 declare @workaccomplished int = 240 
     declare @timeworked int = (SELECT DATEDIFF(hour, '2007-05-07 09:53:01', '2007-05-08 09:53:01')) 

     --datediff parameters: hour, startingtime , endtime 
     declare @productivity numeric(8,4) = @workaccomplished/@timeworked 

     select @productivity 
+0

您目前的方法无效。 'Datediff(小时,)'会轮到你,你不会把分钟变成小数小时。这将使您的计算关闭。 –

+0

@亚当温格你是对的。忘记添加分钟位:\ –

相关问题