利用某一列的值修改之后来更新其自己
--需求说明,在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中的小数位数,则截断多余的数字。
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。