在写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 的变大而变大。