SQL SERVER中强制类型转换cast和convert

SQL SERVER中强制类型转换cast和convert
2015年11月09日 11:57:42
阅读数:13283
在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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ganfengguang/article/details/49736621

相关文章
相关标签/搜索