不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2020-06-20 22:35:47  修改时间:2024-03-21 03:19:06  分类:MySQL/Redis  编辑

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