DATEADD - Как я могу сделать сравнение - PullRequest
3 голосов
/ 06 февраля 2012

Я пытаюсь проверить, предпринята ли вторая попытка (вы можете представить что-либо, например, попытку пароля, попытку загрузки и т. Д.) В течение определенного времени (@window), начиная с момента попытки1 (@start).Почему в этом сообщается ошибка синтаксиса, когда другие сравнения времени и даты работают с реляционными операторами

declare @start datetime
declare @window INT
select @start = GETDATE(),@window = 10

select CAST((DATEADD(MINUTE,@window,@start) <= @start) as BIT)

Ожидаемый результат был примерно равен 0, но я получаю Incorrect syntax near '<'.

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012

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

SELECT CASE WHEN DATEADD(MINUTE,@window,@start) <= @start THEN 1 ELSE 0 END
0 голосов
/ 06 февраля 2012
select CAST((CASE 
                WHEN DATEADD(MINUTE,@window,@start) <= @start
                THEN 1
                ELSE 0
        END) AS BIT)
...