Puede redondear la fecha actual a 30 minutos como:
select dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Explicación:esto toma la cantidad de minutos desde la fecha 0:
datediff(mi,0,getdate())
Luego lo redondea a un múltiplo de 30 dividiendo y multiplicando por 30:
datediff(mi,0,getdate())/30*30
El resultado se vuelve a agregar a la fecha 0 para encontrar el último bloque de 30 minutos
dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Esto se puede ajustar fácilmente durante 60 minutos. :)