MSSQL 中cast convert用法及区别


一、函数简介

cast和convert函数的功能都是在MSSQL中将一个类型强制转换为另外一个类型,这两个函数的目的一致

二、函数用法简介

1 将一个字符型 转换为整型
select cast(‘7852’ as int)
—-转换成功
select cast(‘785.2’ as int)
—-转换失败 cast函数不能自动截断字符串
select cast(‘785.2’ as decimal)
—-转换成功 系统进行了四舍五入操作
select cast(‘785.5’ as decimal)
—-转换成功 系统进行了四舍五入操作
select cast(‘785.8’ as decimal)
—-转换成功 系统进行了四舍五入操作
select cast(‘785.8’ as decimal(9,2))
—-转换成功


三、Convert函数

select convert(int,’7852′ )
—-转换成功
select convert(int,’785.2′ )
—-转换失败 convert函数不能自动截断字符串
select convert(decimal,’785.2′ )
—-转换成功 系统进行了四舍五入操作
select convert(decimal,’785.5′ )
—-转换成功 系统进行了四舍五入操作
select convert(decimal,’785.8′ )
—-转换成功 系统进行了四舍五入操作
select convert(decimal(9,2),’785.2′ )
—-转换成功


四、函数举例应用

例1:截取字符串
declare @a char(10)
set @a =’abcdefghu’
select @a
select CONVERT(char(5),@a)

例2:
数值型和字符型组合
declare @a char(10),@b int
set @a =’abcdefghu’
set @b =1244
select CONVERT(char(10),@a)+CONVERT(varchar(4),@b)


五、函数之间的共同点和区别

两个函数都可以进行数据类型转换,只是两个函数语法不一致