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() 函数

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com