在SQL SERVER中,cast和convert函数都可用于类型转换,其功能是相同的,
只是语法不同.
cast一般更容易使用,convert的优点是可以格式化日期和数值.
代码
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
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