怎么将SQLServer数据库中的日期批量加上1年? 如题,现在用的是SqlServer2005,里边有一列是日期,格式是“2006-10-10”,想把这些日期统一加上一年,变成“2007-10-10”,应该怎么做呀?请哪位强人帮帮忙,我对这个数据库不是很熟。请写详细些,我菜~~~~呵呵 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 update tab set col=dateadd(yy,1,col) create table tb(dt datetime)insert into tb values('2006-10-10')insert into tb values('2006-10-11')insert into tb values('2006-10-12')insert into tb values('2006-10-13')insert into tb values('2006-10-14')insert into tb values('2006-10-15')go--searchselect dateadd(yy,1,dt) dt from tb--updateupdate tb set dt = dateadd(yy,1,dt)select * from tbdrop table tb/*dt ------------------------------------------------------ 2007-10-10 00:00:00.0002007-10-11 00:00:00.0002007-10-12 00:00:00.0002007-10-13 00:00:00.0002007-10-14 00:00:00.0002007-10-15 00:00:00.000(所影响的行数为 6 行)*/ update 之前要注意先select看看结果,免得错了select dateadd(yy,1,'2006-10-10') update tb set time = dateadd(yy,1,time) 楼上速度都好快啊--加一年Declare @time datetimeSet @time=GETDATE()Print convert(varchar(20),@time,120)Set @time=DATEADD(YEAR,1,@time)Print convert(varchar(20),@time,120)/**output2010-05-21 08:07:062011-05-21 08:07:06**/--减1年Set @time=GETDATE()Print convert(varchar(20),@time,120)Set @time=DATEADD(YEAR,-1,@time)Print convert(varchar(20),@time,120)/**output2010-05-21 08:08:152009-05-21 08:08:15**/ --加一年Declare @time datetimeSet @time=GETDATE()Print convert(varchar(20),@time,120)Set @time=DATEADD(YEAR,1,@time)Print convert(varchar(20),@time,120)/**output2010-05-21 08:07:062011-05-21 08:07:06**/--减1年Set @time=GETDATE()Print convert(varchar(20),@time,120)Set @time=DATEADD(YEAR,-1,@time)Print convert(varchar(20),@time,120)/**output2010-05-21 08:08:152009-05-21 08:08:15**/ 来晚啦。update 表名 set 列名=dateadd(yy,1,列名) update tb set time_col = dateadd(year,1,time_col) sqlserver2005如何指定数据库的编码为utf8? 寻求更新语句的帮助 sql 2000 前导0如何显示? 如何实现动态列举字段? 性能监视器中找不到SQLSERVER开头的计数器 关于执行计划的解读,聚集索引,in的方式查询 如何永久性地修改一个数据库的DATEFIRST ?? 关于触发器的问题,sos,高分赠送 关于日文版MS-SQL中插入中文数据的乱码问题 ********************两个问题******************************** mssql2005删除例程? 有关用户问题
insert into tb values('2006-10-10')
insert into tb values('2006-10-11')
insert into tb values('2006-10-12')
insert into tb values('2006-10-13')
insert into tb values('2006-10-14')
insert into tb values('2006-10-15')
go--search
select dateadd(yy,1,dt) dt from tb--update
update tb set dt = dateadd(yy,1,dt)select * from tbdrop table tb/*
dt
------------------------------------------------------
2007-10-10 00:00:00.000
2007-10-11 00:00:00.000
2007-10-12 00:00:00.000
2007-10-13 00:00:00.000
2007-10-14 00:00:00.000
2007-10-15 00:00:00.000(所影响的行数为 6 行)*/
update tb
set time = dateadd(yy,1,time)
Declare @time datetime
Set @time=GETDATE()
Print convert(varchar(20),@time,120)
Set @time=DATEADD(YEAR,1,@time)
Print convert(varchar(20),@time,120)/**
output
2010-05-21 08:07:06
2011-05-21 08:07:06
**/
--减1年
Set @time=GETDATE()
Print convert(varchar(20),@time,120)
Set @time=DATEADD(YEAR,-1,@time)
Print convert(varchar(20),@time,120)
/**
output
2010-05-21 08:08:15
2009-05-21 08:08:15
**/
Declare @time datetime
Set @time=GETDATE()
Print convert(varchar(20),@time,120)
Set @time=DATEADD(YEAR,1,@time)
Print convert(varchar(20),@time,120)/**
output
2010-05-21 08:07:06
2011-05-21 08:07:06
**/
--减1年
Set @time=GETDATE()
Print convert(varchar(20),@time,120)
Set @time=DATEADD(YEAR,-1,@time)
Print convert(varchar(20),@time,120)
/**
output
2010-05-21 08:08:15
2009-05-21 08:08:15
**/
update 表名 set 列名=dateadd(yy,1,列名)