SQL server2008存储过程中char(20) 怎么转成int SQL server2008存储过程中char(20) 怎么转成intset @data1 = cast(ltrim(rtrim(@data)) as int)这个对不对? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 declare @t table (col char(20))insert into @tselect '123' union allselect '456' union allselect '789'select col=col+0+123 from @t/*col-----------246579912*/不去掉空格,也可以直接隐式转换。 首先3楼不对,55 ascii-> 53我的数据是可以转换的,可能使后面空格的问题,cast不了,trim不起作用 這樣declare @t table (col char(20))insert into @tselect '123' union allselect '456' union allselect '789'select col=col*1 from @t/*123456789*/ 用 rtrim--用這樣去掉結尾空格 直接轉換就行了不需要用什麼 去空格的轉為int時,空格會忽略的,除非空格在中間 select @Data0 = SUBSTRING('0123456789ABCDEF', @hour/16+1,1)+SUBSTRING('0123456789ABCDEF', @hour%16+1,1);接下去把这个@Data0 转成数字 是char(20)的 说明里面存的数据有问题,例如存在一些字母或是符合,或是超出int上限的数字。 SQL 错误 sql语句怎么写? 帮我看看这句SQL为什么不好用 一个查询时间范围的简单问题 请问与完全备份的文件分开和不分开的差异备份有什么区别 在线等.....用什么命令可以查看sql server 2008表的字符集 SQL update 的原理 用DUMP TRANSACTION 库名 WITH NO_LOG清空日志时问题遇到问题。。麻烦看下 在同一服务器下的跨不同数据库中的数据查询 一个软件发布遇到的问题 一条SQL语句 更改字段长度的问题
declare @t table (col char(20))
insert into @t
select '123' union all
select '456' union all
select '789'select col=col+0+123 from @t
/*
col
-----------
246
579
912
*/不去掉空格,也可以直接隐式转换。
我的数据是可以转换的,可能使后面空格的问题,cast不了,trim不起作用
declare @t table (col char(20))
insert into @t
select '123' union all
select '456' union all
select '789'select col=col*1 from @t
/*
123
456
789
*/
用 rtrim--用這樣去掉結尾空格
直接轉換就行了不需要用什麼 去空格的轉為int時,空格會忽略的,除非空格在中間