如题   不要用substring  谢 谢!

解决方案 »

  1.   

    substring是对字符串的,四舍五入是数字的
      

  2.   


    例如
    declare @a decimal(10,5)
    set @a=124456.65443
    我想取到12346  也就是说不要后面的数字!如果一用般函数的话就会出问题!取到的是124457
      

  3.   


    declare @a decimal(18,5)
    set @a=124456.65443
    select cast(@a as int)
      

  4.   

    4楼的方法ok,
    补充:select CONVERT(int,@a)  也行。。
      

  5.   

    declare @a decimal(20,5)
    set @a=124456.65443
    select cast(@a as int)
    楼主你给个10的长度都不够
      

  6.   

    --ROUND
    --返回数字表达式并四舍五入为指定的长度或精度。
    --
    --语法
    --ROUND ( numeric_e­xpression , length [ , function ] )
    --
    --参数
    --numeric_e­xpression
    --
    --精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
    --
    --length
    --
    --是 numeric_e­xpression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_e­xpression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_e­xpression 则按 length 所指定的在小数点的左边四舍五入。
    --
    --function
    --
    --是 要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_e­xpression 将四舍五入。当指定 0 以外的值时,将截断 numeric_e­xpression。
    --
    --返回类型
    --返回与 numeric_e­xpression 相同的类型。
    --
    --注释
    --ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。
    --
    --示例 结果
    --ROUND(748.58, -4) 0
    --
    --当 length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的 numeric_e­xpression。