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 的变大而变大。
可以发牢骚,但是必须要努力奋斗!