SQL检查记录和dateTime之间的时间差小时

时间:2015-01-26 16:17:10

标签: sql sql-server tsql

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

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

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

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 = datetime now,(2015-01-26 09:08:28.183)

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

但我没有得到结果。怎么做?

2 个答案:

答案 0 :(得分:0)

试试这个;

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

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

答案 1 :(得分:0)

您错误地将值放在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