使用小数的VARCHAR标量函数仅返回INT



我在这一个上敲了我的头。如果我执行此

SELECT CONVERT(varchar, CONVERT(datetime, 0.55), 108);

我得到了" 13:12:00"。

但是,将其放入标量函数中

CREATE FUNCTION [dbo].[t_ExcelToTime] (@Excel decimal (12,8))
RETURNS varchar
AS
BEGIN
    DECLARE @Result varchar
    SELECT @Result =  CONVERT(varchar,CONVERT(datetime, @Excel), 108)
    RETURN @Result
END

并将其称为

SELECT [dbo].[t_ExcelToTime](0.55);

返回" 1"

我在这里做错了什么?

"返回varchar"与"返回varchar(1("相同。为您的数据类型提供适当的长度。

最新更新