sql类型转换函数cast和convert

  • Post author:
  • Post category:其他





简介:











数据类型转换可以通过



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