Предполагая, что я понимаю вопрос, вы хотите, чтобы текущий час текущей минуты находился в диапазоне от 45 до 59, или предыдущий час, если текущая минута находится в диапазоне от 0 до 44 - так вот мое предлагаемое решение:
DECLARE @ActualTime DateTime = GetDate()
SELECT @ActualTime As ActualTime, DATETIMEFROMPARTS(YEAR(Now), MONTH(Now), DAY(Now), DATEPART(HOUR, Now), 45, 0, 0) As LastQuarterOfHour
FROM
(
SELECT IIF(DATEPART(MINUTE,@ActualTime) < 45, DATEADD(HOUR, -1, @ActualTime), @ActualTime) As Now
) AS x