Sie können das aktuelle Datum wie folgt auf 30 Minuten runden:
select dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Erläuterung:Dies dauert die Anzahl der Minuten seit dem 0-Datum:
datediff(mi,0,getdate())
Dann wird das auf ein Vielfaches von 30 gerundet, indem es mit 30 geteilt und multipliziert wird:
datediff(mi,0,getdate())/30*30
Das Ergebnis wird wieder zum 0-Datum addiert, um den letzten 30-Minuten-Block zu finden
dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Diese lässt sich problemlos auf 60 Minuten einstellen. :)