一、ASCII碼值與字符間轉換
1、ASCII()與CHAR()
ASCII()返回字符表達式最左端字符的ASCII 碼值。在ASCII()函數中,純數字的字符串可不用‘’括起來,但含其他字符的字符串必須用‘’括起來使用,否則會出 錯。
CHAR()將ASCII 碼轉換為字符。假設沒有輸入0 ~ 128 之間的ASCII 碼值,CHAR() 返回NULL 。比如:
- select ASCII('asd')
- select CHAR(97)
- select CHAR(129) --char()范圍0-128
輸出結果:

2、Unicode()與NCHAR()
與ASCII()、CHAR()功能相似相似,它們成對出現,通俗一點說,用Unicode()把字符轉化成ASCII碼值的時候,相相應的要用NCHAR()把ASCII碼值轉化成字符,同 理,用ASCII()把字符轉化成ASCII碼值的時候,相相應的要用CHAR()把ASCII碼值轉化成字符。
NCHAR()將ASCII 碼轉換為字符。假設沒有輸入0 ~ 65535 之間的ASCII 碼值,CHAR() 返回NULL 。比如:
- select Unicode('asd')
- select NCHAR(97)
- select NCHAR(65536) --char()范圍0-65535
輸出結果:

二、把數值型數據轉換為字符型數據。
STR()函數
語法格式:STR (<float_expression>[,length[, <decimal>]])
說明:
length 指定返回的字符串的長度,decimal 指定返回的小數位數。假設沒有指定長度,缺省的length 值為10, decimal 缺省值為0。
當length 或者decimal 為負值時,返回NULL;
當length 小於小數點左邊的位數時,返回length 個*;
先服從length ,再取decimal ;
當返回的字符串位數小於length ,左邊補足空格。比如:
select STR(1.11111,2) --返回值 1,當返回的字符串位數小於length ,左邊補足空格 select STR(11.1111,2) --返回值*,當length 小於小數點左邊的位數時,返回length 個* select STR(1.11111,-1,2) --返回值NULL,當length 或者decimal 為負值時,返回NULL select STR(1.11111,3,2) --返回值1.1,先服從length ,再取decimal三、通用數據類型轉換函數
1、CAST()
CAST (<expression> AS <data_ type>[ length ])
2、CONVERT()
CONVERT (<data_ type>[ length ], <expression> [, style])
a、data_type為SQL Server系統定義的數據類型,用戶自己定義的數據類型不能在此使用。
b、length用於指定數據的長度,缺省值為30。
c、把CHAR或VARCHAR類型轉換為諸如INT或SAMLLINT這種INTEGER類型、結果必須是帶正號或負號的數值。
d、TEXT類型到CHAR或VARCHAR類型轉換最多為8000個字符,即CHAR或VARCHAR數據類型是最大長度。
e、IMAGE類型存儲的數據轉換到BINARY或VARBINARY類型,最多為8000個字符。
f、把整數值轉換為MONEY或SMALLMONEY類型,按定義的國家的貨幣單位來處理,如人民幣、美元、英鎊等。
g、BIT類型的轉換把非零值轉換為1,並仍以BIT類型存儲。
h、試圖轉換到不同長度的數據類型,會截短轉換值並在轉換值后顯示“+”,以標識發生了這樣的截斷。比如:
SELECT CAST('12345' AS SMALLINT) --返回值12345 SELECT CONVERT(INT,'1234') --返回值1234 SELECT CAST(12.345 AS MONEY) --返回值12.345 SELECT CONVERT(MONEY,$12.345) --返回值12.345 SELECT CAST(0 AS BIT) --返回值0 SELECT CONVERT(BIT,'1234') --返回值1 DECLARE @test CHAR(5),@float INT SET @test='1234' SET @float=123456 SELECT CAST(@test AS VARCHAR(3)) --返回值123 SELECT CONVERT(VARCHAR(3),@test) --返回值123 SELECT CAST(@float AS SMALLINT) --出錯,發生數據類型 smallint 的算術溢出錯誤,值 = 123456。 SELECT CAST(1234 AS SMALLINT) --返回值1234
i、用CONVERT()函數的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 數據轉換為字符串時所選用的由SQL Server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式。具體請點擊:http://blog.csdn.net/u010355520/article/details/24031675