oracle中的to_char() 在sqlserver2008中如何使用? 如下面的语句_百度知 ...
发布网友
发布时间:2022-04-23 14:30
我来回答
共5个回答
热心网友
时间:2022-04-09 15:25
用Round() + Cast()就可以:
Select b.unit_name ,a.amount1,a.amount2,a.amount3,a.amount ,
cast(Round((a.Rate1 * 100),2) as varchar(13))+'%' Rate1,
cast(Round((a.Rate2 * 100),2) as varchar(13))+'%' Rate2,
cast(Round((a.Rate3 * 100),2) as varchar(13)),
cast((Round((a.Rate * 100),2) as varchar(13)) +'%' Rate
From rv_tmp_report_sideways a,rv_unit b Where a.unit_id = b.unit_id
热心网友
时间:2022-04-09 16:43
若能保证a.Rate可以强行转换为数字(就是说里面保存的只有数字)的话
可以使用 Convert(decimal(18,2),a.Rate1 * 100) 来转换成格式为保留小数点后2位数字,总长度最高18位的数字.
若是a.Rate还含有小数的话 修改为
Convert(decimal(18,2),a.Rate1 * 100.00)
即可执行
热心网友
时间:2022-04-09 18:18
to_char fm的作用是去空格,可以忽视,990.00 sqlserver里不记得有没这个用法,如果没有就改成999.00好了,无非就是 0.23显示成.23而已追问SQL SERVER2008中好像用的不是TO_CHAR()方法
追答sqlserver: str(number,10,3) 取number10位,小数点后面3位
热心网友
时间:2022-04-09 20:09
可以用cast来替代试试,
类似:select cast('79.3916690681319'asdecimal(18,13))
热心网友
时间:2022-04-09 22:17
CONVERT() 函数