名稱 說明
BINARY 將 string 轉換為二進制 string
CAST() 將某個值轉換為特定類型
CONVERT() 將某個值轉換為特定類型
數據類型轉換可以通過CAST()和CONVERT()函數來實現。大多數情況下,這兩個函數是重疊的,它們反映了SQL語言的演化歷史。這兩個函 數的功能相似,不過它們的語法不同。雖然並非所有類型的值都能轉變為其他數據類型,但總的來說,任何可以轉換的值都可以用簡單的函數實現轉換。
CAST()函數的參數是一個表達式,它包括用AS關鍵字分隔的源值和目標數據類型。以下例子用於將文本字符串’123’轉換為整型:
1
SELECT CAST('123' AS int)
返回值是整型值123。如果試圖將一個代表小數的字符串轉換為整型值,又會出現什么情況呢?
1
SELECT CAST('123.4' AS int)
CAST()函數和CONVERT()函數都不能執行四舍五入或截斷操作。由於123.4不能用int數據類型來表示,所以對這個函數調用將產生一個錯誤:
1
Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value '123.4' to a column of data type int.
要返回一個合法的數值,就必須使用能處理這個值的數據類型。對於這個例子,存在多個可用的數據類型。如果通過CAST()函數將這個值轉換為 decimal類型,需要首先定義decimal值的精度與小數位數。在本例中,精度與小數位數分別為9與2。精度是總的數字位數,包括小數點左邊和右邊 位數的總和。而小數位數是小數點右邊的位數。這表示本例能夠支持的最大的整數值是9999999,而最小的小數是0.01。
1
SELECT CAST('123.4' AS decimal(9,2))
decimal數據類型在結果網格中將顯示有效小數位:
123.40
精度和小數位數的默認值分別是18與0。如果在decimal類型中不提供這兩個值,SQL Server將截斷數字的小數部分,而不會產生錯誤。
1
SELECT CAST('123.4' AS decimal)
結果是一個整數值:
123
1、將Int 轉為varchar經常用 concat函數,比如concat(8,’0′) 得到字符串 ’80’
2、將varchar 轉為Int 用 cast(a as signed) a為varchar類型的字符串
總結:類型轉換和SQL Server一樣,就是類型參數有點點不同 : CAST(xxx AS 類型) , CONVERT(xxx,類型)