All you need is to use
DATEDIFF[
^] function.
SELECT CASE usercode, login_date, CASE WHEN DATEDIFF(dd, login_date, GETDATE())>45 THEN 'N' ELSE 'Y' END AS Result
FROM (
SELECT usercode, MAX(login_date) AS login_date
FROM [login]
GROUP BY usercode
) AS T