将十进制转换为 Varchar

2021-09-10 00:00:00 tsql sql-server

我在定义为十进制(8,3)的表中有一个十进制列.我想将此列包含在 Select 语句中,将其转换为 Varchar 并且只显示两位小数.我似乎无法找到正确的选项组合来执行此操作,因为我尝试的所有操作仍然会产生三位小数.

I have a decimal column in a table defined as decimal(8,3). I would like to include this column in a Select statement, convert it to a Varchar and only display two decimal places. I can't seem to find the right combination of options to do this because everything I try still produces three decimal places.

推荐答案

这是一种方法:

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

如果你想让它右对齐,你应该这样做:

if you want it right-aligned, something like this should do you:

select str(something,8,2) from #work

相关文章