Możesz zaokrąglić bieżącą datę do 30 minut, na przykład:
select dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Wyjaśnienie:zajmuje to liczbę minut od daty 0:
datediff(mi,0,getdate())
Następnie zaokrągla to do wielokrotności 30, dzieląc i mnożąc przez 30:
datediff(mi,0,getdate())/30*30
Wynik jest dodawany z powrotem do daty 0, aby znaleźć ostatni 30-minutowy blok
dateadd(mi, datediff(mi,0,getdate())/30*30, 0)
Można to łatwo regulować przez 60 minut. :)