在SQL SERVER中,cast和convert函数都可用于类型转换,其功能是相同的,
只是语法不同
cast一般更容易使用,convert的优点是可以格式化日期和数值
select CAST('123' as int) -- 123
select CONVERT(int, '123') -- 123
select CAST(1234 as int) -- 123
select CONVERT(int, 1234) -- 123
select CAST('1234' as int)
select CONVERT(int, '1234')
-- Conversion failed when converting the varchar value '1234' to data type int
select CAST('1234' as decimal) -- 123
select CONVERT(decimal, '1234') -- 123
select CAST('1234' as decimal(9,2)) -- 12340
select CONVERT(decimal(9,2), '1234') -- 12340
declare @Num money
set @Num = 123456
select CONVERT(varchar(20), @Num, 0) -- 123456
select CONVERT(varchar(20), @Num, 1) -- 1,23456
select CONVERT(varchar(20), @Num, 2) -- 12345600
用CAST或者CONVERT
cast(1256
as
char)
CONVERT(char,1256)
语法
使用
CAST:
CAST
(
expression
AS
data_type
)
使用
CONVERT:
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
数据类型)。
SQL
Server
支持使用科威特
算法
的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将
datetime
或
smalldatetime
转换为字符数据的
style
值。给
style
值加
100,可获得包括世纪数位的四位年份
(yyyy)。
查看原帖>>
select
case when charindex('g',isnull(DescFlexField_PrivateDescSeg3,''))=0 then cast(0 as decimal(18,3))
when charindex('g',isnull(DescFlexField_PrivateDescSeg3,''))>0
then cast(SUBSTRING(isnull(DescFlexField_PrivateDescSeg3,''),0,LEN(isnull(DescFlexField_PrivateDescSeg3,''))) as decimal(18,3))
else cast(DescFlexField_PrivateDescSeg3 as decimal(18,3))
end
from sm_so ,每个字段都进行一次类型转换
以上就是关于SQL SERVER中强制类型转换cast和convert的区别全部的内容,包括:SQL SERVER中强制类型转换cast和convert的区别、如何在sql server中把数据库中money类型转换为char类、在sql server数据库中将一个nvarchar类型的空值转换成decimal(18,3)类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)