从数字中获取小数值的可靠方法是什么?

dan*_*die 0 sql t-sql sql-server sql-server-2005 sql-server-2008

我有许多类型Decimal(8, 2),并一直Substring用于获得小数值.

E.g.)
    declare @val decimal(8, 2), @strVal varchar(10)
    set @val = 15.80
    set @strVal = cast(@val as varchar)
    select  @val, substring(@strVal, charindex('.', @strVal), len(@strVal))
Run Code Online (Sandbox Code Playgroud)

有没有更好的方式来简单地得到分数值,.80@val而无需将其转换为一个字符?
我想知道是否有一个内置的UDF(用户定义函数)可以解析而不必推出我自己的版本.

Nat*_*ler 8

使用模数(%)运算符.你会得到的0.80.

像这样:

declare @val decimal(8, 2)
set     @val = 15.80
select  @val, @val % 1
Run Code Online (Sandbox Code Playgroud)