Aktuální datum můžete zaokrouhlit na 30 minut jako:
select dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Vysvětlení:toto trvá počet minut od data 0:
datediff(mi,0,getdate())
Pak to zaokrouhlí na násobek 30 dělením a násobením 30:
datediff(mi,0,getdate())/30*30
Výsledek se přidá zpět k datu 0, aby se našel poslední 30minutový blok
dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
To lze snadno upravit po dobu 60 minut. :)