MYSQLでは、DATEとTIMEを分離しています。過去2時間に1つのIPがログインに失敗した回数を数える必要があります。彼が何度も失敗した場合、彼は次の2時間ログインできません。
どちらのステートメントが正しいのかわかりません(おそらく、以下の2つのステートメントのどれでもありません)。
SELECT COUNT(`ip`) AS count_failed_logins FROM `failed_logins` WHERE `time`=TIME(CURTIME()+Interval 2 hour)
また
SELECT COUNT(`ip`) AS count_failed_logins FROM `failed_logins` WHERE `time`=TIMEDIFF(CURTIME()+Interval 2 hour)