Я думаю, что вы хотите
IF DATEADD(hour, LastRunDateTime, 1) <= GETDATE() BEGIN
RETURN 1;
END;
ELSE BEGIN
RETURN 0;
END;
DateDiff немного более тонкий, чем просто вычитание двух datetime. Это на самом деле говорит вам, сколько «границ» пересекаются между ними. Например:
PRINT DATEDIFF(HH, '2010-12-07T03:59:59', '2010-12-07T04:00:00');
PRINT DATEDIFF(HH, '2010-12-07T04:00:00', '2010-12-07T04:59:59');
печатает следующее:
1
0
что сбивает с толку, потому что вторая пара datetime находится дальше друг от друга. Эта функциональность великолепна, когда вам это нужно, но нелогична, когда вам это не нужно.