將某種數據類型的表達式顯式轉換為另一種數據類型。CAST 和 CONVERT 提供相似的功能。
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
expression
是任何有效的 Microsoft SQL Server" 表達式。有關更多信息,請參見表達式。
data_type
目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。有關可用的數據類型的更多信息,請參見數據類型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。
style
日期格式樣式,借以將 datetime 或 smalldatetime 數據轉換為字符數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字符串格式樣式,借以將 float、real、money 或 smallmoney 數據轉換為字符數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。
SQL Server 自動將數據從一種數據類型轉換成另一種數據類型。例如,如果一個 smallint 變量和一個 int 變量相比較,這個 smallint 變量在比較前即被隱性轉換成 int 變量。
CAST 和 CONVERT 函數將數值從一個數據類型(局部變量、列或其它表達式)轉換到另一個數據類型。例如,下面的 CAST 函數將數值 $157.27 轉換成字符串 ''$157.27'':CAST ( $157.27 AS VARCHAR(10) )
CAST 函數基於 SQL-92 標准並且優先於 CONVERT。
當從一個 SQL Server 對象的數據類型向另一個轉換時,一些隱性和顯式數據類型轉換是不支持的。例如,nchar 數值根本就不能被轉換成 image 數值。nchar 只能顯式地轉換成 binary,隱性地轉換到 binary 是不支持的。nchar 可以顯式地或者隱性地轉換成 nvarchar。
當處理 sql_variant 數據類型時,SQL Server 支持將具有其它數據類型的對象隱性轉換成 sql_variant 類型。然而,SQL Server 並不支持從 sql_variant 數據隱性地轉換到其它數據類型的對象。