SQL中的cast()函数--将某种数据类型的表达式显式转换为另一种数据类型

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

例子:

SELECT CAST('9.0' AS decimal)  结果:9

例子:

SELECT
            MAX(
                CAST(
                    SUBSTRING(
                        u.user_code,
                        2,
                        LENGTH(u.user_code) - 1
                    ) AS SIGNED --要转换的类型
                )
            ) CODE
                    
        FROM
            t_s_user u
        WHERE
            u.flag = '1'
        AND SUBSTRING(u.user_code, 1, 1)='A' -- SUBSTRING(要截取的字符串,从1开始截取,截取几位)包前也包后

以上结果本来应该返回的是005 ,我们转换成了整数所以结果就是5

posted on 2020-05-08 13:28  UnmatchedSelf  阅读(956)  评论(0编辑  收藏  举报

导航