CAST函式用于將某種資料型別的運算式顯式轉換為另一種資料型別,
CAST()函式的引數是一個運算式,它包括用AS關鍵字分隔的源值和目標資料型別,
一、語法:
CAST (expression AS data_type)
引數說明:
expression:任何有效的SQServer運算式,
AS:用于分隔兩個引數,在AS之前的是要處理的資料,在AS之后是要轉換的資料型別,
data_type:目標系統所提供的資料型別,包括bigint和sql_variant,不能使用用戶定義的資料型別,
用CAST函式進行資料型別轉換時,在下列情況下能夠被接受:
(1)兩個運算式的資料型別完全相同,
(2)兩個運算式可隱性轉換,
(3)必須顯式轉換資料型別,
可以轉換的型別是有限制的,這個型別可以是以下值其中的一個:
- 二進制,同帶binary前綴的效果 : BINARY
- 字符型,可帶引數 : CHAR()
- 日期 : DATE
- 時間: TIME
- 日期時間型 : DATETIME
- 浮點數 : DECIMAL
- 整數 : SIGNED
- 無符號整數 : UNSIGNED
二、注意事項:
(1). CAST()函式的引數是一個運算式,它包括用AS關鍵字分隔的源值和目標資料型別,
SELECT CAST('12' AS int)

(2). 回傳值是整型值12,如果試圖將一個代表小數的字串轉換為整型值,又會出現什么情況呢?
SELECT CAST('12.5' AS int)

注意:CAST()函式和CONVERT()函式都不能執行四舍五入或截斷操作,由于12.5不能用int資料型別來表示,所以對這個函式呼叫將產生一個錯誤
(3). 要回傳一個合法的數值,就必須使用能處理這個值的資料型別,
對于這個例子,存在多個可用的資料型別,如果通過CAST()函式將這個值轉換為decimal型別,需要首先定義decimal值的精度與小數位數,在本例中,精度與小數位數分別為9 與2,精度是總的數字位數,包括小數點左邊和右邊位數的總和,而小數位數是小數點右邊的位數,這表示本例能夠支持的最大的整數值是9999999,而最小的小數是0.01,
SELECT CAST('12.5' AS decimal(9,2))

(4). 精度和小數位數的默認值分別是18與0,如果在decimal型別中不提供這兩個值,SQL Server將截斷數字的小數部分,而不會產生錯誤,
SELECT CAST('12.5' AS decimal)

寫作不易,轉載請備明出處,謝謝!
https://www.cnblogs.com/yifeixue/p/13793257.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/169458.html
標籤:其他
