1. 程式人生 > >SQL SERVER中強制型別轉換cast和convert

SQL SERVER中強制型別轉換cast和convert

在SQL SERVER中,cast和convert函式都可用於型別轉換,其功能是類似,只是語法不同。

語法:

cast ( expression as data_type [ (length ) ])
convert ( data_type [ ( length ) ] , expression [ , style ] )

引數:

expression

是任何有效的 Microsoft SQL Server" 表示式。有關更多資訊,請參見表示式。

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 CAST('123' as int)   -- 123
select CONVERT(int, '123')  -- 123

select CAST(123.4 as int)   -- 123
select CONVERT(int, 123.4)  -- 123 

select CAST('123.4' as int)
select CONVERT(int, '123.4')
-- Conversion failed when converting the varchar value '123.4' to data type int.

select CAST('123.4' as decimal)  -- 123
select CONVERT(decimal, '123.4') -- 123 


select CAST('123.4' as decimal(9,2))  -- 123.40
select CONVERT(decimal(9,2), '123.4') -- 123.40


declare @Num money
set @Num = 1234.56
select CONVERT(varchar(20), @Num, 0)  -- 1234.56
select CONVERT(varchar(20), @Num, 1)  -- 1,234.56
select CONVERT(varchar(20), @Num, 2)  -- 1234.5600