十进制到英尺 - 英寸 - 分数

时间:2016-03-16 13:30:14

标签: sql-server-2008 tsql

我创建了一个函数,它将十进制转换为英尺和英寸,但它当前舍入英寸,我需要它将英寸和剩余余额转换为分数。

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"

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) +'"'