计算剩余时间

时间:2015-02-26 12:17:25

标签: sql-server-2012

我正在开发一个有倒计时的测验系统。我有一个下表结构:

----------------
Table - Test    
----------------
Id - int
RemainingTime - time(3)
LastAnswer - datetime

注意:“剩余时间”和“最后答案”之间的差异不会超过一小时。

在每次用户交互时,“剩余时间”将使用如下的sql递减:

update Test set LastAnswer=GETDATE(), RemainingTime=RemainingTime - (GETDATE() - LastAnswer) where Id=@id;

此代码在sql server 2008中正常运行,但在sql 2012中不再有效。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这应该有效。不确定SQL Server 2008是否支持DATEADD()DATEDIFF()函数

   UPDATE Test 
      SET LastAnswer=GETDATE()
         , RemainingTime=DATEADD(minute,-DATEDIFF(MINUTE,LastAnswer,GETDATE() ),RemainingTime )  WHERE Id= @id;