DateTimeDFF()返回负值
问题描述:
我在我的SQL Server视图中有以下代码,我想在c#中使用以在TimeRemaining
= 0时对某些内容进行更改,但有时我会看到TimeRemaining
列当TimeToBeClosed
已通过时,SQL Server将变为负值。我担心如果用户在TimeToBeClosed
通过时必须登录,这可能无法达到我的目的。DateTimeDFF()返回负值
那么我该如何计算停止,当它达到零?
SELECT
Id, StartTime,
DATEADD(hh, 02, StartTime) AS TimeToBeClosed,
DATEDIFF(hh, GETDATE(), DATEADD(hh, 02, StartTime)) AS TimeRemaining
FROM
dbo.MyTable
答
使用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
那么,你想要什么确切的行为?你需要一个SQL更新或C#代码? –