2015-01-26 19 views
0

Мне нужно добавить к этому запросу дополнительную «AND», чтобы проверить, не занимает ли время между двумя записями не менее 2 часов. Это оригинальный запрос:SQL время разницы между часами между записью и dateTime теперь

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

Я пытался добавить второй И как это:

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

, а также, как это:

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

@Now = DateTime сейчас (2015- 01-26 09: 08: 28.183)

dateTime = дата в таблице опубликованной записи (2015-01-25 11: 06: 15.001

Но я не получаю результат. Как это сделать?

+1

'DATEDIFF (МИНУТЫ, [DATETIME] @ Now)> 120' – Lamak

ответ

0

Попробуйте это;

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

Это предполагает, что ваши значения [dateTime] все в прошлом. Если они могут быть в будущем, тогда оберните их в ABS().

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 
Смежные вопросы