Modulo 似乎无法在 SQL Server 2012 中工作

Modulo seems to not be working in SQL Server 2012

我有一个使用 1 table 的简单 select 语句。其中一列取该列的值,除以它,然后取模,但我最后得到一个小数。为什么模数不起作用?

SELECT
    (numeric_datatype_column / 10000) % 100
FROM 
    table a

我所有的值都是小数形式。模数不应该给我一个整数吗?

Shouldn't the modulo give me an integer?

没有。 moduloreturn是除法后的余数。如果您的值是十进制值,模数也会 return 小数部分。它没有被截断。

作为一个工作示例:

Select (123.1234 / 10) % 5

2.3123400

如果你想去除小数,你可以将结果转换为 INT 然后做模:

Select Convert(Int, (123.1234 / 10)) % 5

2