mysql类型转换及小数点保留问题(cast函数)

在写SQL里面总会遇到数据类型的问题,这里讲一下cast的用法:

1、类型转换

MySQL 的CAST()函数可用来获取一个类型的值,并产生另一个类型的值

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

CAST(value as type);就是CAST(xxx AS 类型)

可以转换的类型是有限制的。这个类型可以是以下值其中的一个:

  • 二进制,同带binary前缀的效果 : BINARY    
  • 字符型,可带参数 : CHAR()     
  • 日期 : DATE     
  • 时间: TIME     
  • 日期时间型 : DATETIME     
  • 浮点数 : DECIMAL      
  • 整数 : SIGNED     
  • 无符号整数 : UNSIGNED 

mysql>:

input

SELECT CONVERT('23',SIGNED);

output       23

2、保留小数

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

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

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

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

 

猜你喜欢

转载自blog.csdn.net/Andy_shenzl/article/details/82871496