我在一个定义为十进制(8,3)的表中有一个十进制列.我想在一个Select
语句中包含此列,将其转换为a Varchar
并仅显示两个小数位.我似乎无法找到正确的选项组合来执行此操作,因为我尝试的所有内容仍会产生三个小数位.
Nic*_*rey 45
这是一种方式:
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
Run Code Online (Sandbox Code Playgroud)
如果你想要它正确对齐,这样的事情应该对你做:
select str(something,8,2) from #work
Run Code Online (Sandbox Code Playgroud)
小智 26
如果您使用的是SQL Server 2012,2014或更高版本,请使用格式函数:
select Format( decimalColumnName ,'FormatString','en-US' )
Run Code Online (Sandbox Code Playgroud)
查看Microsoft主题和.NET格式语法,了解如何定义格式字符串.
这个问题的一个例子是:
select Format( MyDecimalColumn ,'N','en-US' )
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 25
您可能需要转换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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
189883 次 |
最近记录: |