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