Можете да закръглите текущата дата до 30 минути като:
select dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Обяснение:това отнема броя минути от 0-датата:
datediff(mi,0,getdate())
След това закръгля това до кратно на 30 чрез разделяне и умножение по 30:
datediff(mi,0,getdate())/30*30
Резултатът се добавя обратно към 0-датата, за да се намери последният блок от 30 минути
dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Това може да се регулира лесно за 60 минути. :)