Я рекомендую timefromparts()
:
select timefromparts(datepart(hour, timecol),
(datepart(minute, timecol) / 15) * 15,
0, 0, 6)
Выше усечено значение. Округление значения немного сложнее. Я бы порекомендовал:
select timefromparts(datepart(hour, dateadd(second, 7 * 60 + 30, timecol)),
(datepart(minute, dateadd(second, 7 * 60 + 30, timecol)) / 15) * 15,
0, 0, 6)
То есть добавить 7,5 минут и обрезать.