U kunt de huidige datum afronden op 30 minuten zoals:
select dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Uitleg:dit duurt het aantal minuten sinds de 0-datum:
datediff(mi,0,getdate())
Dan rondt het dat af op een veelvoud van 30 door te delen en te vermenigvuldigen met 30:
datediff(mi,0,getdate())/30*30
Het resultaat wordt weer toegevoegd aan de 0-datum om het laatste blok van 30 minuten te vinden
dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Dit kan gemakkelijk 60 minuten worden aangepast. :)