使用小数的varchar标量函数仅返回int

时间:2018-02-13 17:02:19

标签: sql-server tsql sql-function

我正在敲打这个。如果我执行此

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"

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

“return varchar”与“returns varchar(1)”相同。为您的数据类型提供合适的长度。