Niedawno zderzyłem się z przypadkiem, gdzie musiałem tak sformatować datę by obcinać czas do pełnych godzin czyli 19:23 na 19:00 i 19:59 też na 19:00.
Pierwsze podejście to zabawa z substring, ale stwierdziłem, że można do tego użyć funkcji FORMAT.
declare @data datetime
set @data= convert(datetime, '2024-07-01 19:45:01.001')
select @data
SELECT FORMAT(@data, 'yyyy-MM-dd HH:00:00','pl-pl')
gdzie:
- yyyy – rok na 4 znakach
- MM – miesiąc numerycznie
- dd – dzień numerycznie
- HH – godzina w systemie 24h / hh – godzina w systemie 12h (am/pm)
- 00 – w pozycji minut i sekund zawsze będzie zamieniane na 00
- pl-pl – parametr format informującej o CULTURE