I have a Calendar table with the following structure:
CalendarID nvarchar(13)
Date date
Time time(7)
with data such as:

Formatting the time column as hhmm works:
SELECT [CalendarID]
, FORMAT([Date], 'ddd, MMM dd, yyyy') AS [DATE]
, FORMAT([Time], 'hhmm') AS [Time]
FROM [dbo].[Calendar]

But formatting as hh:mm does not work and displays NULL:
SELECT [CalendarID]
, FORMAT([Date], 'ddd, MMM dd, yyyy') AS [DATE]
, FORMAT([Time], 'hh:mm') AS [Time]
FROM [dbo].[Calendar]

How can I format it as hh:mm?
From the docs:
FORMAT relies upon CLR formatting rules, which dictate that colons and periods must be escaped. Therefore, when the format string (second parameter) contains a colon or period, the colon or period must be escaped with backslash when an input value (first parameter) is of the time data type.
This should work:
SELECT FORMAT(CAST('09:00:00.1234567' AS TIME(7)), 'hh\:mm') -- 09:00
SELECT FORMAT(CAST('09:00:00.1234567' AS TIME(7)), 'hh\:mm\:ss\.fffffff') -- 09:00:00.1234567
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With