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


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl