SQL检查记录和日期时间之间的时差小时数
我需要在这个查询中添加一个额外的参数,并检查两条记录之间的时间是否至少为2小时。这是原始查询:SQL检查记录和日期时间之间的时差小时数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要在这个查询中添加一个额外的参数,并检查两条记录之间的时间是否至少为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)
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
也像这样:
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=日期时间Now,2015-01-26 09:08:28.183
dateTime=已发布记录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
DATEDIFFMINUTE,@Now>120