我试图从十进制数中得到余数。我使用了PARSENAME
函数,如:
DECLARE @Total decimal(7,2) = 1000.40;
DECLARE @Remainder int = 0;
SET @Remainder = PARSENAME(@Total, 1)
它返回小数部分的整数形式,如40.如何以十进制形式得到余数,如0.40。因为我必须将余数值存储为小数。
由于
帕塔
答案 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的错误数据类型,它应该是小数。如果你想要它作为一个整数,还有其他一些方法可以实现它。