1

我正在使用一个函数来获取列字段的总数是:

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)

结尾

在线上

                 Sum([WorkingTime])/60

我得到的结果是int。如何将其转换或转换为数字或浮点数..?

编辑

我试着流动:

             Sum(Cast([WorkingTime] as float))/60

             Sum([WorkingTime])/60.0

但没有成功。

4

3 回答 3

2

好吧,您可以将其计算float使用

Sum(Cast([WorkingTime] as float))/60

但您还需要将函数返回值更改为float

RETURNS float
于 2014-06-19T18:40:05.550 回答
0

INT / INT将导致INT, 即使结果可能是分数。

用这个:

Sum([WorkingTime]) / 60.0
于 2014-06-19T18:40:55.083 回答
0

改变

RETURNS int

返回十进制 (10,2)

于 2014-06-19T20:04:43.697 回答