sqlserver数据库 数据格式化

来源:互联网 发布:hadoop书籍 知乎 编辑:程序博客网 时间:2024/04/30 10:06

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, 0, 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,


原创粉丝点击