我在SQL Server视图中有以下代码,我希望在c#中使用以在TimeRemaining
= 0时对某些内容进行更改,但有时我看到TimeRemaining
当TimeToBeClosed
通过时,SQL Server中的列变为负值。如果用户在TimeToBeClosed
过去后必须登录,我担心这可能不符合我的目的。
那么当它变为零时如何计算停止?
SELECT
Id, StartTime,
DATEADD(hh, 02, StartTime) AS TimeToBeClosed,
DATEDIFF(hh, GETDATE(), DATEADD(hh, 02, StartTime)) AS TimeRemaining
FROM
dbo.MyTable
答案 0 :(得分:0)
使用CASE语句为所有负时间值获取0。
SELECT Id, StartTime, DATEADD(hh, 02, StartTime) AS TimeToBeClosed,
CASE
WHEN DATEDIFF(hh, GETDATE(),DATEADD(hh, 02, StartTime))>0
THEN DATEDIFF(hh, GETDATE(),DATEADD(hh, 02, StartTime))
ELSE 0
END AS TimeRemaining
FROM dbo.MyTable