CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。
语法:CAST (expression AS data_type)
- expression:任何有效的SQServer表达式。
- AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
- data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。
可以转换的类型是有限制的。这个类型可以是以下值其中的一个:
- 二进制:同带binary前缀的效果 : BINARY
- 字符型:可带参数 : CHAR()
- 日期:DATE
- 时间:TIME
- 日期时间型:DATETIME
- 浮点数:DECIMAL
- 整数:SIGNED
- 无符号整数:UNSIGNED
例子1: 数字字符型 转 数字型(常用于字段排序)
SELECT CAST('9.0' AS decimal)
结果:9
例子2:
SELECT CAST('9.5' AS decimal(10,2))
结果:9.5(精度与小数位数分别为10与2。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数)
例子3:
SELECT CAST(NOW() AS DATE)
结果:2017-11-27
now() 2017-11-27 10:43:22
举例:工作中的一处应用排序
SELECT DISTINCT `KRowNo` FROM `maintan_kiln_bits` WHERE `WorkshopdataId` = 101 ORDER BY CAST(KRowNo as SIGNED) ASC