尝试 Select 计算需要计算特定日期和当前日期之间差异的地方

Trying to a Select Count where it needs to count the difference between a certain date and current date

这对我来说不是很有效!

我的查询如下:

SELECT COUNT (*) as [generic] 
FROM [Log]
Where value IN (Select ID, tsSendDocument, sysReceivedFrom
WHERE sysReceivedFrom = 'generic' AND 
DATEDIFF(hour, tsSendDocument, GetDate()) > 2) 

那么,我做错了什么?

我希望它在每次 tsSendDocument 列超过 2 小时时都进行计数。它最终会给我一个等于 1 的计数。我设置了一个 table 以在值 = 1 时提醒我,这意味着 tsSendDocument 超过 2 小时。

这有意义吗?

我认为您只需要聚合:

Select COUNT(*) 
FROM Log
WHERE sysReceivedFrom = 'generic' AND 
      DATEDIFF(hour, tsSendDocument, GetDate()) > = 2;
当您指定 INNOT IN 子句时,

subquery 只会 return 一个表达式。

根据你的评论,我了解到你想检查最后一个条目是否早于 2 小时,所以这应该有效:

SELECT TOP 1 CASE WHEN tsSendDocument < DATEADD(HOUR, -2, GETDATE()) THEN 1 ELSE 0 END AS [generic]
FROM [Log]
ORDER BY tsSendDocument DESC