SQL Server将整数转换为十进制

时间:2015-10-08 17:48:33

标签: sql-server

我查看了这篇文章:How to convert integer to decimal in SQL Server query?但它并没有像我预期的那样。

我有一个简单的等式 - ( [X] - [Y] ) / [X],其中X和Y是列中的任意int值。我想将结果存储为十进制,包括1(或100%)。但是当我尝试查询时,我似乎没有得到我期望的结果。如果我使用下面的查询 - 我得到0。

到目前为止,这是我的查询:

CONVERT(DECIMAL(3, 2), (s4.Duration - s2.Interruption_Min_Total) / s4.Duration) AS Percentage

如果您需要查看更多我的实际查询,请询问 - 如果需要,我会发布。

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您需要强制SQL Server将除法中使用的int转换为小数,然后SQL Server将返回小数:

DECLARE @v1 INT;
DECLARE @v2 INT;
DECLARE @v3 INT;

SET @v1 = 5;
SET @v2 = 2;
SET @v3 = 4;

SELECT (@v1 - @v2) / @v3;

SELECT (@v1 - @v2) / CONVERT(DECIMAL(10,2), @v3);

请查看this问题的答案。