有三位以上小数的money类型转Varchar的问题
SQL code
create proc wf
(
@num1 money
)
as
begin
select cast(@num1 as varchar)
end
创建上边这个简单的存储过程后
exec wf 0.024
执行一下,得到结果
0.02
怎么处理能获得完整的数据?
------解决方案--------------------不是转化问题吧。而是money就只有两位小数,
你用一个精度高一点的类型就可以了
如 decimal(20,5)
这样就能转化出来了。menoy貌似是decimal(9,2)
------解决方案--------------------select
convert(varchar(30),@num1 ,0)
------解决方案--------------------可进行如下处理
SQL code
select cast(convert(float,@num1) as varchar(10))
--or
select cast(convert(decimal(18,3),@num1) as varchar(10))
------解决方案--------------------
------解决方案--------------------
SQL code
-- 保留四位
ALTER proc wf
(
@num1 money
)
as
begin
select convert(VARCHAR(10),@num1 ,126)
end
------解决方案--------------------
------解决方案--------------------
cast((cast(@num1 as numeric(18, 4))) as varchar)