sql类型转换函数cast和convert
简介:
数据类型转换可以通过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。

浙公网安备 33010602011771号