22,209
社区成员
发帖
与我相关
我的任务
分享
DECLARE @start_dt DATETIME,@end_dt DATETIME;
SELECT @start_dt = '2009-01-01',@end_dt = '2009-12-31';
DECLARE @i INT
SET @i = 0
UPDATE tb SET
addtime = DATEADD(second,@i,@start_dt),
@i = @i +1
WHERE addtime < @end_dt
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([id] int,[col] varchar(4),[addtime] sql_variant)
insert [tb]
select 1,'黄蓉',null union all
select 2,'王蓉',null union all
select 3,'芙蓉',null
go
update tb
set addtime=dateadd(s,id,getdate())
select * from [tb]
/*
id col addtime
----------- ---- -------------------------------
1 黄蓉 2009-05-31 11:52:30.400
2 王蓉 2009-05-31 11:52:31.400
3 芙蓉 2009-05-31 11:52:32.400
(3 行受影响)
*/
DECLARE @i INT
SET @i = 0;
UPDATE tb SET
addtime = DATEADD(second,@i,'2009-01-01'),
@i = @i +1
create table tb(id int,ttime datetime)
insert tb
select 1,null union all
select 2,null union all
select 3,null union all
select 4,null union all
select 5,null union all
select 6,null union all
select 7,null union all
select 9,null union all
select 11,null
-->更新
declare @stime datetime
set @stime='2009-05-31 00:00:00.000'
update a
set a.ttime=dateadd(ss,b.px,@stime) --每条记录之间间隔1秒钟
from
tb a,
(select *,px=(select count(1)+1 from tb where id<t.id) from tb t) b
where
a.id=b.id
-->查询
select * from tb
drop table tb
/**
id ttime
----------- ------------------------------------------------------
1 2009-05-31 00:00:01.000
2 2009-05-31 00:00:02.000
3 2009-05-31 00:00:03.000
4 2009-05-31 00:00:04.000
5 2009-05-31 00:00:05.000
6 2009-05-31 00:00:06.000
7 2009-05-31 00:00:07.000
9 2009-05-31 00:00:08.000
11 2009-05-31 00:00:09.000
(所影响的行数为 9 行)
**/
DECLARE @start_dt DATETIME,@end_dt DATETIME;
SELECT @start_dt = '2009-01-01'
DECLARE @i INT;
SET @i = 0;
UPDATE tb SET
addtime = DATEADD(second,@i,@start_dt),
@i = @i +1
DECLARE @start_dt DATETIME,@end_dt DATETIME;
SELECT @start_dt = '2009-01-01',@end_dt = '2009-12-31';
DECLARE @i INT;
SET @i = 0;
UPDATE tb SET
addtime = DATEADD(second,@i,@start_dt),
@i = @i +1
WHERE addtime < @end_dt;
改一下2楼的,试试。--如果你的主键是ID的话:
update tb
set addtime=dateadd(s,id,getdate())
update tb
set addtime= dateadd(s, RAND(),getdate())
DECLARE @start_dt DATETIME,@end_dt DATETIME;
DECLARE @i INT;
SET @i = 0;
SELECT @start_dt = '2009-01-01',@end_dt = '2009-12-31';
WHERE @i < DATEDIFF (second,@start_dt,@end_dt)
BEGIN
UPDATE tb
SET addtime = DATEADD(second,@i,@start_dt),
@i = @i +1;
WHERE addtime < @end_dt;
DECLARE @start_dt DATETIME,@end_dt DATETIME;
SELECT @start_dt = '2009-01-01',@end_dt = '2009-12-31';
DECLARE @i INT;
SET @i = 0;
WHERE @i < DATEDIFF(second,@start_dt,@end_dt)
BEGIN
UPDATE tb SET
addtime = DATEADD(second,@i,@start_dt),
@i = @i +1;
END
DECLARE @start_dt DATETIME,@end_dt DATETIME;
SELECT @start_dt = '2009-01-01',@end_dt = '2009-12-31';
DECLARE @i INT;
SET @i = 0;
UPDATE tb SET
addtime = DATEADD(second,@i,@start_dt),
@i = @i +1;
WHERE addtime < @end_dt;