Sql數據類型轉換


       一、ASCII碼值與字符間轉換

      

       1、ASCII()與CHAR()

      ASCII()返回字符表達式最左端字符的ASCII 碼值。在ASCII()函數中,純數字的字符串可不用‘’括起來,但含其他字符的字符串必須用‘’括起來使用,否則會出        錯。
      CHAR()將ASCII 碼轉換為字符。假設沒有輸入0 ~ 128 之間的ASCII 碼值,CHAR() 返回NULL 。比如:
 [sql]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
  1. select ASCII('asd')  
  2. select CHAR(97)         
  3. 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 。比如:
[sql]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
  1. select Unicode('asd')  
  2. select NCHAR(97)  
  3. 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


免責聲明!

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



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