cast()、decimal(M,D) --SQL对查询字段保留小数位操作

参考:http://database.51cto.com/art/201005/201651.htm

   http://www.lai18.com/content/1693593.html

直接上例子,以下是对字段cost除以1000,保留两位小数的处理

cast(SUM(A.costs)/1000 AS decimal(32,2))

cast()函数是一个转换函数,参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。

  1)将字符串‘123’转换为int整型:

select CAST('123' AS int)    #out: 123

  2) CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作:

SELECT CAST('123.4' AS int)

  由于123.4不能用int数据类型来表示,所以对这个函数调用将产生一个错误。

decimal(M,D)是一种数据类型,参数M为数字精度,精度就是总的数字位数(小数位和整数位的和),D就是要保留的小数位数。

需要注意:1)参数m<65 是总个数,d<30且 d<m 是小数位。

     2)decimal可能的最大取值范围与double 一样,但是其有效的取值范围由M 和D 的值决定。如果改变M 而固定D,则其取值范围将随M 的变大而变大。

    

原文地址:https://www.cnblogs.com/yxpblog/p/5396343.html