我正在使用一个函数来获取列字段的总数:
ALTER FUNCTION [dbo].[GetTwoWeeklyWorkTime](@EmployeeID as int,@PayPeriodID as varchar(10))
RETURNS int
AS
BEGIN
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
Select @StartDate=[PeriodStartDate],@EndDate=[PeriodEndDate] from PayPeriod where PayPeriodId=@PayPeriodID
-- Declare the return variable here
DECLARE @ResultVar numeric(10,2)
SELECT @ResultVar=
Sum([WorkingTime])/60
FROM [DayLog] Where EmployeeId =@EmployeeID AND CreatedDate between @StartDate AND @endDate
-- Return the result of the function
RETURN Isnull(@ResultVar,0)
END
在
行 Sum([WorkingTime])/60
我得到的结果为int。 如何转换或将其转换为数字或浮动..?
修改
我试过流动:
Sum(Cast([WorkingTime] as float))/60
Sum([WorkingTime])/60.0
但没有成功。
答案 0 :(得分:2)
好吧,您可以使用
计算它为float
Sum(Cast([WorkingTime] as float))/60
但您还需要将函数返回值更改为float
:
RETURNS float
答案 1 :(得分:0)
INT / INT
会产生INT
,即使结果可能只是一小部分。
使用此:
Sum([WorkingTime]) / 60.0
答案 2 :(得分:0)
更改
RETURNS int
到
RETURNS decimal(10,2)