SQL Server(00):轉換格式函數Cast、Convert


  CAST、CONVERT都可以執行數據類型轉換。在大部分情況下,兩者執行同樣的功能,不同的是CONVERT還提供一些特別的日期格式轉換,而CAST沒有這個功能。

CAST是ANSI兼容的,推薦使用CONVERT。

語法

CONVERT (data_type [ ( length ) ] , expression [ , style ])
CAST (expression AS data_type [ (length ) ]) 

data_type

目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。

length

nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。

style

日期格式樣式,借以將 datetime 或 smalldatetime 數據轉換為字符數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);

數字格式樣式,借以將 float、real、money 或 smallmoney 數據轉換為字符數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。

示例

SELECT 'AB' + 1    --此語句報錯,在將 varchar 值 'AB' 轉換成數據類型 int 時失敗。
SELECT 'AB' + CONVERT(varchar,1)    --輸出 AB1
SELECT CONVERT(decimal(10,5), 12.3) --輸出12.30000
SELECT 'AB' + CAST(1 AS varchar) --輸出 AB1

CAST和CONVERT都能轉換日期:

SELECT CONVERT(DateTime,'2011-07-11')    --輸出 2011-07-11 00:00:00.000
SELECT CAST('2011-07-11' AS DateTime)    --輸出 2011-07-11 00:00:00.000

CONVERT有更多的樣式可選:

SELECT CONVERT(varchar,GETDATE(),5)    --輸出 01-07-13
SELECT CONVERT(varchar,GETDATE(),111)  --輸出 2013/07/01
SELECT CONVERT(varchar,GETDATE(),1)    --輸出 07/01/13

SELECT CAST(GETDATE() AS varchar)    --輸出 07 1 2013 9:56PM 

 

轉化為日期格式

在表中,左側的兩列表示將datetime或smalldatetime轉換為字符數據的style值。給style值加 100,可獲得包括世紀數位的四位年份 (yyyy)。

*    默認值(style0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。

 


免責聲明!

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



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