sql server中的怎么把数值型转换为字符串

 我来答
小无谈旅游百科
高粉答主

2020-05-06 · 每个回答都超有意思的
知道小有建树答主
回答量:824
采纳率:98%
帮助的人:14.2万
展开全部

有两种。

1.转换(int,字段名)

例如:选择convert(int,'3')

选择cast('3'作为int)

一般来说,没有必要将字符串转换为数字类型,如果你需要比较两个字段是相等的,但为字符串类型字段,类型,用“=”来比较这两个值是相等的,SQLSERVER将自动将字符串转换为一个数字,然后比较。

扩展资料:

注意事项:

这两个函数都执行强制转换,但是语法不同。据说有一些不同的转换,但我更习惯于使用转换函数,它更像一个函数的语法一方面,可以指定的格式转换,将时间和价值转换为一个字符串。

对于数据类型的确切值,转换后的字符串是我们存储的值。如:

声明@iintset@i=123456789print'test:'+转换(varchar(20),@i)

输出是:test:123456789

对于具有近似值的数据类型,情况就不那么简单了。

声明@ifloatset@i=123456789print'test:'+转换(varchar(20),@i):test:1.23457e+008

娱乐小八卦啊a
高粉答主

2020-05-07 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117746

向TA提问 私信TA
展开全部

sql server中把数值型转换为字符串的方法如下:

①select cast(字段 as varchar) from 表名

②select convert(varchar(50),字段) from 表名

SQL Server中的数值类型分为两种,一种是精确的数值类型,具体的数据类型有: bit、 tinyint、smallint、int、 bigint、 smallmoney、 money和decimal, 这些数据类型能够精确的表明某以数值;另一种是近似的数值类型,具体就是float和real。

浮点数据为近似值,因此,并非数据类型范围内的所有值都能精确地表示。有些时候我们需要将这些数值类型转换为字符串类型,用到的转换函数就是cast和convert,这两个函数的作用都是进行类型转换,只不过语法格式不同。

扩展资料

Sql Server Cast和Convert的区别:

在SQL Server中,Cast和Convert都是用来数据类型转换的,其功能相同,语法不同

cast容易使用,Convert优点就是格式化日期和数值

Cast 语法: Cast(expression As data_type)

Convert 语法: Convert(data_type,expression,style)

在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式

CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
普实软件
2017-07-14 · 知道合伙人软件行家
普实软件
知道合伙人软件行家
采纳数:1703 获赞数:7395
普实软件ERP专家

向TA提问 私信TA
展开全部

SQLServer中的数值类型分为两种:

①精确的数值类型,具体的数据类型有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,这些数据类型能够精确的表明某以数值;

②近似的数值类型,具体就是float和real。浮点数据为近似值。

因此,并非数据类型范围内的所有值都能精确的表示。


精确数值的数据类型转换:

declare @i int
set @i=123456789
print 'test:'+convert(varchar(20),@i)

输出结果:test:123456789

近似数值的数据类型转换:

declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),@i)

输出结果:test:1.23457e+008


输出的结果是使用科学计数法来表示。

帮助文档中说到float 或 real 转换为字符数据时的 style 值:

0(默认值)最大为 6 位数。根据需要使用科学记数法。

1 始终为 8 位值。始终使用科学记数法。

2 始终为 16 位值。始终使用科学记数法。

我们的值是123456789,超过了6位数。所以不管是0还是1,2结果都会使用科学计数法来表示。那么要怎么样才能将我们的数据不转换成科学计数法而输出呢?比较简单的办法就是将近似数据转换为精确数据,然后再将精确数据转换成字符串。


同样以上面的例子为例, 进行两次数据类型的转换如下:

declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),convert(int,@i))

输出:test:123456789


如果是有小数,那么我们要转换出小数位的话,可以转换成decimal,转换出的小数位数在定义decimal时指定。比如要输出4位小数,那么转换代码是:

declare @i float
set @i=123456789.12
print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))

输出:test:123456789.1200



已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是丑九怪
2016-08-21 · 分享从无到有,界限从有到无
我是丑九怪
采纳数:327 获赞数:792

向TA提问 私信TA
展开全部
select cast(字段 as varchar) from 表名
--或者 
select convert(varchar(50),字段) from 表名
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heshibo111
推荐于2017-08-10 · TA获得超过131个赞
知道小有建树答主
回答量:117
采纳率:100%
帮助的人:36.9万
展开全部

id 是数值  nvarchar(自定义位数)

 CONVERT(nvarchar(2),id)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式