在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