我创建了一个函数,它将十进制转换为英尺和英寸,但它当前舍入英寸,我需要它将英寸和剩余余额转换为分数。
CREATE FUNCTION FeetInchesFraction(@V_INCHES DECIMAL)
RETURNS VARCHAR(20)
AS
BEGIN
RETURN(
SELECT CAST(FLOOR(@V_INCHES/12.0) AS VARCHAR)+''' '+CAST(FLOOR(@V_INCHES%12.0) AS VARCHAR)+'"'
)
END
GO
SELECT dbo.FeetInchesFraction(68.5)
GO
上面显示5' 9"
,我需要它才能显示5' 8 1/2"
答案 0 :(得分:1)
请使用here
中的函数名称dbo.udf_ConvertToFraction然后像这样修改你的代码
ALTER FUNCTION FeetInchesFraction(@V_INCHES DECIMAL(18,2))
RETURNS VARCHAR(20)
AS
BEGIN
RETURN(
SELECT CAST(FLOOR(@V_INCHES/12.0) AS VARCHAR)+''' '+CAST(FLOOR(@V_INCHES%12.0) AS VARCHAR)+' ' + dbo.udf_ConvertToFraction(@V_INCHES%1.0) + '"'
)
END
GO
SELECT dbo.FeetInchesFraction(68.5)
GO
干杯
答案 1 :(得分:0)
如果不考虑分数(1/2),那么您可以尝试使用以下脚本
DECLARE @1 DECIMAL(5,2)
SELECT @1 = 68.5
SELECT CAST(FLOOR(@1/12) AS VARCHAR)+''' ' + CAST(Floor(@1%12) AS VARCHAR) + '.' + CAST(CAST((ABS(@1%12)-Floor(@1%12)) * 10 AS INT) AS VARCHAR) +'"'