修改数据库里面的日期 在原来的基础上都加上3个月 类型是smalldatetime
update tt set t1=Cast((' '+Cast((Cast(Substring(Cast(t1 as varchar),1,3) as int)+3) as varchar)
+substring(Cast(t1 as varchar),3,len(t1)-1)) as smalldatetime)
这样可以实现但是如果月份大于9月 10的话就报错 我知道可以写个判断来执行。但是太复杂了。
有没有更简单的函数来执行 谢谢各位大虾了!
update tt set t1=Cast((' '+Cast((Cast(Substring(Cast(t1 as varchar),1,3) as int)+3) as varchar)
+substring(Cast(t1 as varchar),3,len(t1)-1)) as smalldatetime)
这样可以实现但是如果月份大于9月 10的话就报错 我知道可以写个判断来执行。但是太复杂了。
有没有更简单的函数来执行 谢谢各位大虾了!
DROP TABLE [tt]
GO
CREATE TABLE TT(t1 varchar(20))
INSERT INTO TT SELECT '2009-09-10' UNION ALL SELECT '2009-10-11'
GOSELECT * FROM TT/*
t1
--------------------
2009-09-10
2009-10-11(所影响的行数为 2 行)
*/
update tt set t1=convert(varchar,dateadd(mm,3,Cast(t1 as datetime)),120)SELECT * FROM TT
/*
t1
--------------------
2009-12-10 00:00:00
2010-01-11 00:00:00
*/