declare @a float
set @a = 2.9999999
select cast(left(cast(cast(@a as numeric(20,10)) as varchar(20)),5) as numeric(10,3))
------------
2.999(所影响的行数为 1 行)
set @a = 2.9999999
select cast(left(cast(cast(@a as numeric(20,10)) as varchar(20)),5) as numeric(10,3))
------------
2.999(所影响的行数为 1 行)
解决方案 »
- [求助]数据字典是什么意思,相当于数据库的“帮助”、文档?
- “SQL Server 属性(安全选项卡)”中的身份验证如果选中为“仅 Windows”,那么本地写的ASP程序连接数据库帐户填什么才能正确?
- 请帮忙xp_cmdshell的怪问题!
- 关于SQL6.5的问题?????
- 50 分求一 sql server 表达式
- 怎样写这个查询
- SQL数据库恢复:这个问题你能解决吗?
- 关于扩展存储过程
- 高手是不是都睡着了?关于SQL SERVER 2000 建表和建库的问题.(两天前就发了此问题,但无一个人回答,真的有那么难吗!?抱歉,我只留下35分了.)
- 如何读取 文本文件?
- 如何实现不同数据库中两张表的完全同步?
- 求一sql,有点难度,等待...
select @q=2.9999999
select @n=convert(varchar(1000),convert(numeric(20,7),@q))
select convert(numeric(20,3),left(@n,3+CHARINDEX('.',@n)))
@string char(50)set @h=2.99999999 set @string= substring(str(@h,10,8),1,5)
print @string
-------------------------------
2.999
由数字数据转换来的字符数据。语法
STR ( float_expression [ , length [ , decimal ] ] ) 参数
float_expression是带小数点的近似数字 (float) 数据类型的表达式。不要在 STR 函数中将函数或子查询用作 float_expression。 length是总长度,包括小数点、符号、数字或空格。默认值为 10。decimal是小数点右边的位数。