在 SQL 中每行添加 1 天

Jas*_*onV 2 sql t-sql sql-server

我有一个测试 SQL Server 数据库,其中包含有关呼叫中心收到的呼叫的数据。每个调用都有一个时间戳,在我的测试数据库中,我想向每行的时间戳字段添加一天。我想每天使用计划作业执行此操作,以便从我们的应用程序的角度来看,数据仍然看起来像是新鲜的。到目前为止,我所拥有的似乎表现不佳,因为该过程不断进入暂停状态。我绝对不是 SQL 专家,我的感觉是可能有更好的方法来做到这一点。有人可以帮我吗?

BEGIN TRANSACTION [CallMover]

declare @call_id int
declare @call_time DateTime

BEGIN TRY

select @call_id = MIN (ID) from Call

while @call_id is not null
begin
    select @call_time = TimeStamp from Call where ID = @call_id
    update [dbo].[Call] set TimeStamp = DATEADD(DAY, 1, @call_time)
    select @call_id = MIN (ID) from Call where ID > @call_id
end

COMMIT TRANSACTION [CallMover]

END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION [CallMover]
END CATCH

GO
Run Code Online (Sandbox Code Playgroud)

Cod*_*ent 5

您的查询过于复杂。一个人UPDATE就是你所需要的。

UPDATE Call
  SET Timestamp = DATEADD(day,1,Timestamp)
Run Code Online (Sandbox Code Playgroud)