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

SQL SERVER中强制类型转换cast和convert的区别,第1张

在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)类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10129957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存