SUM(tablename / 60)如何实现?

时间:2014-04-25 18:24:42

标签: sql sql-server stored-procedures sum

这是我存储过程中的一行。我的工作时间小时工作是存储分钟。如何存储它除以60。

(select 
    SUM(ISNULL(hoursworked,0)) 
 from 
    UserTime 
 where 
    userid = @employeeid 
    and convert(varchar(100),checkin,106) = convert(varchar(100),@Startdate,106) 
    and loginstatus= 'Out') 


hoursworked as int

我该如何实现这个

SUM(ISNULL(hoursworked/60,0))

1 个答案:

答案 0 :(得分:1)

你可能得到的是0。您应首先执行sum()

coalesce(sum(hoursworked)/60, 0)

问题是SQL Server执行整数除法,因此任何小于60(且大于或等于0)的值都将导致0。你可能真的想要:

coalesce(sum(hoursworked)/60.0, 0)