Sql 在日期列中使用自动递增日期更新表
我想更新Sql server 2005中日期列中具有自动递增日期的表。若要标记新插入的行,可以将Sql 在日期列中使用自动递增日期更新表,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我想更新Sql server 2005中日期列中具有自动递增日期的表。若要标记新插入的行,可以将标识列与计算字段组合。例如: declare @t table ( dayNumber int identity, Date as dateadd(day, dayNumber-1, '1970-01-01') ) insert into @t default values insert into @t default values insert into @t defaul
标识
列与计算字段组合。例如:
declare @t table
(
dayNumber int identity,
Date as dateadd(day, dayNumber-1, '1970-01-01')
)
insert into @t default values
insert into @t default values
insert into @t default values
select * from @t
这张照片是:
dayNumber Date
1 1970-01-01 00:00:00.000
2 1970-01-02 00:00:00.000
3 1970-01-03 00:00:00.000
id name DateColumn
1 Maggie 1970-01-01 00:00:00.000
2 Tom 1970-01-02 00:00:00.000
3 Phillip 1970-01-03 00:00:00.000
4 Stephen 1970-01-04 00:00:00.000
要使用增加的日期更新现有表中的列,请使用
行号
,如:
declare @t2 table (id int identity, name varchar(50), DateColumn datetime)
insert @t2 (name) values ('Maggie'), ('Tom'), ('Phillip'), ('Stephen')
update t2
set DateColumn = DATEADD(day, rn-1, '1970-01-01')
from @t2 t2
join (
select ROW_NUMBER() over (order by id) rn
, id
from @t2
) t2_numbered
on t2_numbered.id = t2.id
select * from @t2
这张照片是:
dayNumber Date
1 1970-01-01 00:00:00.000
2 1970-01-02 00:00:00.000
3 1970-01-03 00:00:00.000
id name DateColumn
1 Maggie 1970-01-01 00:00:00.000
2 Tom 1970-01-02 00:00:00.000
3 Phillip 1970-01-03 00:00:00.000
4 Stephen 1970-01-04 00:00:00.000