使用subselect更新/如何选择超过24小时的时间

时间:2014-02-17 21:33:07

标签: sql sql-server

请参阅下图。我是sql语法的新手,我有以下更新语句和subselect。我不确定这是正确的方法,但这就是我所拥有的。

我想要检查的是LastRestartTime,如果大于24小时RestartInterval,请将重启时间更新为当前时间。

我有一个exe会检查表LastRestartTime,如果Active=1 and RestartInterval >=24,它会终止并重新启动(或者只是启动进程,如果它已经停止)进程。

然后,我希望程序将LastRestarttime更新为当前时间。

我不知道该怎么做。

update any_table.dbo.thisDatabase 
set LastRestartTime = GetDate() 
where ProcessName In (Select ProcessName 
                      from any_table.dbo.thisDatabase 
                      where LastRestartTime > 24);

enter image description here

1 个答案:

答案 0 :(得分:2)

看起来你不需要子查询,请尝试:

UPDATE any_table.dbo.thisDatabase 
SET LastRestartTime = CURRENT_TIMESTAMP 
WHERE LastRestartTime <= DATEADD(HOUR, -24, CURRENT_TIMESTAMP);