MySQL數據類型轉換



名稱	說明
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,類型)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM