sql类型转换函数cast和convert

来源:互联网 发布:恶搞相机软件 编辑:程序博客网 时间:2024/04/30 21:12

简介:

        数据类型转换可以通过CAST()CONVERT()函数来实现。大多数情况下,这两个函数是重叠的,它们反映了SQL语言的演化历史。这两个函数的功能相似,不过它们的语法不同。虽然并非所有类型的值都能转变为其他数据类型,但总的来说,任何可以转换的值都可以用简单的函数实现转换。

 

语法:

       CAST ( expression AS data_type ) 
      CONVERT (data_type[(length)], expression [, style])

 

用例:

 A.检索书名当前销售额的第一位数字为3,通过将ytd_sales转换为char(20)实现。 

  USE   pubs  
  GO  
  SELECT   SUBSTRING(title,   1,   30)   AS   Title,   ytd_sales  
  FROM   titles  
  WHERE   CAST(ytd_sales   AS   char(20))   LIKE   '3%'  
  GO

  USE   pubs  
  GO  
  SELECT   SUBSTRING(title,   1,   30)   AS   Title,   ytd_sales  
  FROM   titles  
  WHERE   CONVERT(char(20),   ytd_sales)   LIKE   '3%'  
  GO

 

 B.   使用带有算术运算符的CAST

  USE   pubs  
  GO  
  SELECT   CAST(ROUND(ytd_sales/price,   0)   AS   int)   AS   'Copies'  
  FROM   titles  
  GO  

 

 C.   使用CAST进行串联

  USE   pubs  
  GO  
  SELECT   'The   price   is   '   +   CAST(price   AS   varchar(12))  
  FROM   titles  
  WHERE   price   >   10.00  
  GO  

 

D.使用CAST获得更多易读文本  

  USE   pubs  
  GO  
  SELECT   CAST(title   AS   char(50)),   ytd_sales  
  FROM   titles  
  WHERE   type   =   'trad_cook'  
  GO

 

 E.使用带有LIKE子句的CAST

  USE   pubs  
  GO  
  SELECT   title,   ytd_sales  
  FROM   titles  
  WHERE   CAST(ytd_sales   AS   char(20))   LIKE   '15%'  
        AND   type   =   'trad_cook'  
  GO  

 

提示:

       当从一个 SQL Server 对象的数据类型向另一个转换时,一些隐性和显式数据类型转换是不支持的。例如,nchar 数值根本就不能被转换成 image 数值。nchar 只能显式地转换成 binary,隐性地转换到 binary 是不支持的。nchar 可以显式地或者隐性地转换成 nvarchar