日期:2014-05-17  浏览次数:20620 次

sqlserver 日期替换求助?
表A   

里面有个日期  2003-12-31:16:19:20

更改成     2013-12-31:16:19:20

怎么改呀

------解决方案--------------------


create table A (日期 nvarchar(20))
insert into A values('2003-12-31:16:19:20')
update A set 日期='2013-12-31:16:19:20' where 日期='2003-12-31:16:19:20'
select * from A

------解决方案--------------------
如果只有一条数据,直接update就好拉,问题不像那么简单吧?
------解决方案--------------------
引用:
表A   

里面有个日期  2003-12-31:16:19:20

更改成     2013-12-31:16:19:20

怎么改呀


日期的格式 2003-12-31:16:19:20 是不是多了个 : 号了,如果是文本的话,直接update就可以的:

update a
set 字段 = '2013-12-31:16:19:20'
where 字段= '2003-12-31:16:19:20'
------解决方案--------------------
update 表名
set 日期=dateadd(year,10,日期)
where DATEPART(YEAR,日期)='2003'
------解决方案--------------------
你的数据都不是datetime类型 不好用日期dateadd来更新 只能字符串更新了
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你的数据都不是datetime类型 不好用日期dateadd来更新 只能字符串更新了



是DATETIME类型


你试试上面giftzheng写的这个语句:

update 表名
set 日期=dateadd(year,10,日期)
where DATEPART(YEAR,日期)='2003'

应该可以



这样太麻烦了, 有没有替换语句,直接替换前面4个字符串  其他不变


这样吗:
update 表名
set 日期=replace(convert(varchar(30),日期,120),'2003','2013')