Du kan runde den aktuelle dato til 30 minutter som:
select dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Forklaring:dette tager det antal minutter siden 0-datoen:
datediff(mi,0,getdate())
Derefter afrundes det til et multiplum af 30 ved at dividere og gange med 30:
datediff(mi,0,getdate())/30*30
Resultatet føjes tilbage til 0-datoen for at finde den sidste 30 minutters blok
dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Dette kan nemt justeres i 60 minutter. :)