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
我需要在此查询中添加一个额外的 "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