如何在SQL Server中以十进制格式获取数字的小数部分

时间:2018-03-26 19:48:05

标签: sql sql-server

我试图从十进制数中得到余数。我使用了PARSENAME函数,如:

DECLARE @Total decimal(7,2) = 1000.40;
DECLARE @Remainder int = 0;

SET @Remainder = PARSENAME(@Total, 1)

它返回小数部分的整数形式,如40.如何以十进制形式得到余数,如0.40。因为我必须将余数值存储为小数。

由于

帕塔

2 个答案:

答案 0 :(得分:7)

SQL Server中的mod函数是%,任何MOD 1都只是小数余数。

SELECT DecimalPortion = 1000.40 % 1

答案 1 :(得分:0)

DECLARE @Total decimal(7,2) = 1000.40

DECLARE @Remainder decimal(2,2)

SET @Remainder = @Total - FLOOR(@Total)

SELECT @Remainder

简单地减去输入变量的FLOOR将给出小数部分

根据Tab的注释,你确实有@Emainder的错误数据类型,它应该是小数。如果你想要它作为一个整数,还有其他一些方法可以实现它。