利用某一列的值修改之后来更新其自己
--需求说明,在signBook2中有一列date_time,值是201210201221,我需要将其前面的2012,改成2014,所以写了下面这段存储过程--_id是表中的一列,是主键identity的
declare @i int declare @datetime varchar(50) set @i=613 while(@i<678) begin set @datetime =(select date_time from signBook2 where _id=@i) --下面这句,也是可以的 --select @datetime = date_time from signBook2 where _id = @i print @datetime--此句输出datetime的值 --substring(expression,start,length) print substring(@datetime,5,9) print str(@datetime)--刚开始,我使用这个函数,造成了错误,此处会将变量的值变成'**********' set @datetime = '2014'+ltrim(substring(@datetime,5,9)) print @datetime update signBook2 set date_time=@datetime where _id=@i set @i=@i+1 end
--总结,经网上查证,str函数->str(nExpres[,nLength[,nDecimalPlaces]]) --nExpression------str要计算的数值表达式. --nLength------------str返回的字符长度。该长度包括小数点所占的字符和小数点右边每个数字所占的字符。 --如果指定长度大于小数点左边数字位数,str()前导空格填充返回的字符串; --如果指定长度小于小数点左边的数字位数,str()返回一串星号,表示数值溢出。 --nDecimalPlaces---由STR()返回字符串中的小数位数。若要指定小数位数,必须同时包含nLength。 --如果指定的小数位数小于nExpress中的小数位数,则截断多余的数字。 --返回值类型->字符型 --当数字转换为字符串时,始终未Number的符号保留一个前导空格,如果Number为正,则返回字符串包含前导空格,并暗含加号。负数将包含减号(-),且没有前导空格。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。