表達式:是常量、變量、列或函數等與運算符的任意組合。以下參數中表達式類(lèi)型是指表達式經(jīng)運算后返回的值的類(lèi)型
數據類(lèi)型轉換函數
(以下兩種函數功能類(lèi)似,但是convert在進(jìn)行日期轉換時(shí)還提供了豐富的樣式,cast只能進(jìn)行普通的日期轉換)
函數名稱(chēng) | 參數 | 示例 | 描述 |
convert | (數據類(lèi)型[(長(cháng)度)],表達式[,樣式]) | select convert(nvarchar,123) 返回123 select N'年齡:'+convert(nvarchar,23) 返回 年齡:23(注意:如果想要在結果中正確顯示中文需要在給定的字符串前面加上N,加N是為了使數據庫識別 Unicode字符) select convert(nvarchar ,getdate()) 返回04 28 2009 10:21PM select convert(nvarchar ,getdate(),101) 返回 select convert(nvarchar ,getdate(),120) 返回2009-04-28 12:22:21 select convert(nvarchar(10) ,getdate(),120) 返回 | 將一種數據類(lèi)型的表達式顯式轉換為另一種數據類(lèi)型的表達式。 長(cháng)度:如果數據類(lèi)型允許設置長(cháng)度,可以設置長(cháng)度,例如 varchar(10) 樣式:用于將日期類(lèi)型數據轉換為字符數據類(lèi)型的日期格式的樣式。見(jiàn)下表 |
cast | (表達式 as 數據類(lèi)型[(長(cháng)度)]) | select cast(123 as nvarchar)返回123 select N'年齡:'+cast(23 as nvarchar) 返回 年齡:23 | 將一種數據類(lèi)型的表達式顯式轉換為另一種數據類(lèi)型的表達式。 |
日期類(lèi)型數據轉換為字符數據類(lèi)型的日期格式的部分樣式表
不帶世紀數位 (yy) | 帶世紀數位 (yyyy) | 標準 | 輸入/輸出 |
- | 0 或 100 | 默認設置 | mon dd yyyy hh:miAM(或 PM) |
1 | 101 | 美國 | mm/dd/yyyy |
2 | 102 | ANSI | yy.mm.dd |
3 | 103 | 英國/法國 | dd/mm/yy |
4 | 104 | 德國 | dd.mm.yy |
5 | 105 | 意大利 | dd-mm-yy |
| 120 | ODBC 規范 | yyyy-mm-dd hh:mi:ss(24h) |
當兩個(gè)不同數據類(lèi)型的表達式用運算符組合后,數據類(lèi)型優(yōu)先級規則指定將優(yōu)先級較低的數據類(lèi)型優(yōu)先轉換為優(yōu)先級較高的數據類(lèi)型。 如果此轉換不是所支持的隱式轉換,則返回錯誤。 當兩個(gè)操作數表達式具有相同的數據類(lèi)型時(shí),運算的結果便為該數據類(lèi)型。如果需要把優(yōu)先級高的數據類(lèi)型轉換為優(yōu)先級低的數據類(lèi)型時(shí)需要使用數據類(lèi)型轉換函數進(jìn)行顯示轉換。
SQL Server 2005 對數據類(lèi)型使用以下優(yōu)先級順序(先高后低):
1、用戶(hù)定義數據類(lèi)型(最高)2、sql_variant 3、xml 4、datetime 5、smalldatetime 6、float 7、real 8、decimal 9、money 10、smallmoney 11、bigint 12、int 13、smallint 14、tinyint 15、bit 16、ntext 17、text 18、image 19、timestamp 20、uniqueidentifier
21、nvarchar(包括 nvarchar(max))22、nchar 23、varchar (包括 varchar(max))24、char 25、varbinary(包括 varbinary(max))26、binary(最低)
聯(lián)系客服