微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver数据库 数据格式化

sqlserver数据库 数据格式化

round
返回数字表达式并四舍五入为指定的长度或精度。

显示的界面上要求只保留到小数点后4位,发现round(表达式,4,1)可以截断小数点4位后的数字
如果写(round,4)表示对小数点后4位四舍五入,但不截断多的0

A. 使用 ROUND 和四舍五入的近似值

下例显示四舍五入和近似值。

语句 结果
SELECT ROUND(123.4545,2)
123.4500
SELECT ROUND(123.45,-2)
100.00

B. 使用 ROUND 截断

下例使用两个 SELECT 语句说明四舍五入和截断之间的区别。第一个语句四舍五入结果。第二个语句截断结果。

语句 结果
SELECT ROUND(150.75,0)
151.00
SELECT ROUND(150.75,1)
150.00

C.数据转换

Cast(round(555,2) as numeric(12,2)) total

D.数据转换

注意:当对数据进行转换时,如果不加 "as varchar(10)"进行再次转换,则数据的小数点保留将按照小数点位数最长的格式保存。

SELECT b.f_time as  sjcssj,a.avgvalue,(case a.pollutantcode 
when '001' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '002' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '004' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '005' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10)) 
when '007' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10)) 
when '008' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '006' then cast(cast(a.avgvalue as numeric(10,1)) as varchar(10))
else cast(cast(a.avgvalue as numeric(10,3)) as varchar(10)) end) ItemValue,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐