In my table I have two fields with time(2) type: startTime and endTime.
SELECT startTime, endTime FROM ...
gives me time formated like this: 13:00:00. I want to display time in my app without seconds, for example 13:00. I tried: SELECT FORMAT(startTime, 'hh:mm') as startTime FROM ... but when I executed it I got null values:
startTime
_____________
NULL
NULL
It's weird because If I select my data normally, like this SELECT startTime FROM ... I get:
startTime
___________
12:00:00
13:00:00
What Am I doing wrong?
CodePudding user response:
You need to escape the colon : as \:. For example:
SELECT FORMAT(startTime, 'hh\:mm') as startTime FROM t
Result:
startTime
---------
12:00
13:00
See example at db<>fiddle.
CodePudding user response:
Rather than format() which has terrible performance, consider convert(...) .
Example
declare @t time(2) = '12:00'
Select convert(varchar(5),@t,108)
Results
12:00
