sql - 查找以999结尾的金额

jan*_*007 1 sql t-sql sql-server

我想找到的金额在999年结束.到目前为止,我所拥有的是:

select * 
from bkpf_bseg_0010
where right(cast(dmbtr as int),3) = 999
Run Code Online (Sandbox Code Playgroud)

但是当我运行查询时,我收到以下错误消息:

int类型的算术溢出错误,值= 4302564925.000000

该列dmbtr是一个浮点数.关于如何绕过这个问题的任何其他想法?

jue*_*n d 15

int在输入只有有限范围的大数字时会出现数字溢出.bigint应该够了.

where cast(dmbtr as bigint) % 1000 = 999
Run Code Online (Sandbox Code Playgroud)

您还可以使用modulo来获取最后3位数字