我在一个定义为十进制(8,3)的表中有一个小数列。我想在Select
声明中包含此列,将其转换为Varchar
并仅显示两位小数。我似乎无法找到正确的选项组合,因为我尝试的所有东西都会产生三位小数。将十进制转换为Varchar
回答
这里有一种方法:
create table #work
(
something decimal(8,3) not null
)
insert #work values (0)
insert #work values (12345.6789)
insert #work values (3.1415926)
insert #work values (45)
insert #work values (9876.123456)
insert #work values (-12.5678)
select convert(varchar,convert(decimal(8,2),something))
from #work
如果你想右对齐,这样的事情应该做你:
select str(something,8,2) from #work
切勿将小数点插入'STR()'函数。它会将小数转换为浮点数,并且可能会出现时髦的舍入差异。 – 2011-04-06 20:02:14
当要求将其舍入到小数点后两位时极不可能,但要采取措施。 – 2011-04-06 20:36:02
我认为CAST(ROUND(yourColumn,2) as varchar)
应该做的工作。
但是,您为什么要在T-SQL中执行这种表示格式?
啧啧,谢谢,我从来没有想到过!当然我尝试过,我仍然得到3位小数。 – Hosea146 2011-04-06 19:56:32
@ Hosea146写下我的第一个答案,但没有正确地阅读你的问题。 – 2011-04-06 19:57:49
希望这将帮助你
Cast(columnName as Numeric(10,2))
or
Cast(@s as decimal(10,2))
我我不明白为什么你想投射到varchar?。如果你投射到varchar再次转换回decimail为two
小数点
您可能需要转换decimal
到money
(或decimal(8,2)
)来获得,准确的格式。该convert
方法可以控制的格式类型,第三个参数:
convert(varchar, cast(price as money)) 12345.67
convert(varchar, cast(price as money), 0) 12345.67
convert(varchar, cast(price as money), 1) 12,345.67
希望这会有所帮助。
DECLARE @emp_cond nvarchar(Max) =' ',@LOCATION_ID NUMERIC(18,0)
[email protected]_ID=10110000000
IF CAST(@LOCATION_ID AS VARCHAR(18))<>' '
BEGIN
SELECT @emp_cond= @emp_cond + N' AND
CM.STATIC_EMP_INFO.EMP_ID = ' ' '+ CAST(@LOCATION_ID AS VARCHAR(18)) +' ' ' '
END
print @emp_cond
EXEC(@emp_cond)
- 1. SQL - 将VARCHAR转换为十进制
- 2. 将十进制转换为十六进制和十六进制
- 3. 将二进制转换为十进制
- 4. 将十进制转换为二进制
- 5. 将十六进制转换为二进制,然后转换为十进制
- 6. SQL Server 2005:将varchar值'1.23E-4'转换为十进制失败
- 7. 在SQL Server中将Varchar值转换为整数/十进制值
- 8. 我如何将十六进制值的varchar转换为int?
- 9. 将mysql类型从varchar转换为十进制
- 10. 如何将十六进制VARCHAR转换为SQL Server中的VARBINARY
- 11. 使用限制将十进制转换为十六进制
- 12. 十进制转换为十六进制的转换(Java)的
- 13. 错误将varchar为十进制
- 14. 将4字节十六进制转换为十进制值
- 15. Python将十进制转换为十六进制
- 16. 将十六进制转换为十进制(Lat/Lon)?
- 17. VB.Net - 将多字节十六进制值转换为十进制
- 18. 在Swift中将十六进制转换为十进制
- 19. 在Lua 4中将十进制转换为十六进制?
- 20. 如何将十六进制字符串转换为十进制?
- 21. 将十六进制数转换为十进制格式
- 22. 用Erlang将十进制转换为十六进制?
- 23. 将十进制值转换为32位浮点十六进制
- 24. 将十六进制转换为十进制在swift中
- 25. 将十进制转换为十进制字符
- 26. 将十六进制从套接字转换为十进制
- 27. Perl 5.6.1与Perl 5.14 - 将十进制转换为十六进制
- 28. 将字符串转换为十六进制到十六进制
- 29. 将十进制(18,8)转换为另一列十进制(18,18)
- 30. 如何在bash中将十进制转换为十六进制?
你为什么不开始显示你到目前为止? – 2011-04-06 19:55:22
您的数据的一个例子,特别是您希望它看起来像总是有帮助的。尼古拉斯包括一个右对齐的答案,因为你没有展示如何显示结果(浪费时间?)。你的目标是尽可能得到最好的答案,而不是不鼓励这些志愿者解决方案。 – JeffO 2011-04-06 20:10:14