SQL 现在检查记录和日期时间之间的时差小时数

SQL check time difference hours between record and dateTime now

我需要在此查询中添加一个额外的 "AND" 以检查两条记录之间的时间是否至少为 2 小时。这是原始查询:

SELECT COUNT(Viewed) FROM [Views] WHERE userIP  = @userIP AND MessageID=@MessageID

我尝试添加第二个并且像这样:

SELECT COUNT(Viewed) FROM [Views] WHERE userIP = @userIP
AND MessageID=@MessageID
AND (@Now - dateTime)>2

还有这样的:

SELECT COUNT(Viewed) FROM [Views] WHERE userIP = @userIP
AND MessageID=@MessageID
AND DATEDIFF(HOUR, @Now, dateTime)>2

@Now = 现在的日期时间,(2015-01-26 09:08:28.183)

dateTime= 发布记录的 table 中的日期时间 (2015-01-25 11:06:15.001

但是我没有得到结果。如何做到这一点?

试试这个;

DATEDIFF(SECOND, [dateTime], @Now) > (2 * 60 * 60)

这假设您的 [dateTime] 值都是过去的。如果他们将来也可以,那么将其包装在 ABS() 中。

你错误地将值放在 Datediff() 中,使用 @now 作为最后一个参数

DECLARE @OMG Datetime
SET @OMG = '2015-01-25 11:06:15.001'

SELECT DATEDIFF(HOUR, @OMG, GETDATE())

IF (DATEDIFF(HOUR, @OMG, GETDATE()) > 2)
    BEGIN
        PRINT 'Yes'
    END
ELSE
    BEGIN
        PRINT 'NO'
    END