如题 不要用substring 谢 谢!
解决方案 »
- 如何先对一个表进行过滤,再对过滤后的结果操作
- 急求SQL语句
- 一个很郁闷的问题,请帮忙
- 如何强制SQL Server表中日期的时分秒无论是新插的还是更改的永远为全0?
- 大家给看看这段sql为什么总是提示(列前缀 'i' 与查询中所用的表名或别名不匹配。),急用,谢谢了!!!!
- 谁能帮这个存储过程提速(急)
- 请问我想生成一个四位的随机数应该如何做?
- SQL SERVER 2005 BEGIN STACK DUMP CPU 100% 系统假死!
- row_number() 写分页语句
- 一个可能比较简单的更新语句的问题:分组求和,然后根据求和结果更新
- left join 如何使b表中的null值变成指定值?
- select str(year(getdate()))+ '-'+str(month(getdate())) 有问题呀?
例如
declare @a decimal(10,5)
set @a=124456.65443
我想取到12346 也就是说不要后面的数字!如果一用般函数的话就会出问题!取到的是124457
declare @a decimal(18,5)
set @a=124456.65443
select cast(@a as int)
补充:select CONVERT(int,@a) 也行。。
set @a=124456.65443
select cast(@a as int)
楼主你给个10的长度都不够
--返回数字表达式并四舍五入为指定的长度或精度。
--
--语法
--ROUND ( numeric_expression , length [ , function ] )
--
--参数
--numeric_expression
--
--精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
--
--length
--
--是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
--
--function
--
--是 要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。
--
--返回类型
--返回与 numeric_expression 相同的类型。
--
--注释
--ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。
--
--示例 结果
--ROUND(748.58, -4) 0
--
--当 length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的 numeric_expression。