问题没有正确框架我知道,如何在T-SQL(SQL Server 2005)中编写以下逻辑来增加用户注册系统的失败次数。
SELECT CASE WHEN (FailedPasswordWindowStart < GETDATE() >=
dateadd(minute,20,FailedPasswordWindowStart)) THEN 'Increase' ELSE 'Same' END FROM users
简单地说,当前时间在最后一次尝试中并且从上次尝试开始时间窗口然后增加失败次数。
答案 0 :(得分:1)
这是一种更简单的方法。将变量替换为您可能已创建的存储过程的参数。
SELECT
CASE WHEN ABS((DATEDIFF(MINUTE,@LastAttempt,GETDATE())) <= @TimeWindow
THEN 'Increase'
ELSE 'Same' END
@Window
- 尝试进行尝试的时间窗口应增加计数
@LastAttempt
- 上次失败尝试(日期和时间)
添加了ABS
,因为获得的值也可能是负数:)