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 に答える