Вы можете легко использовать функцию Format() вместо всех приведений только для SQL 2012 и выше
SELECT FORMAT(GETDATE(),'hh:mm')
На сегодняшний день это лучший способ сделать необходимое преобразование.
Ответ 3
Другой метод с использованием встроенной функции DATEPART:
SELECT cast(DATEPART(hour, GETDATE()) as varchar) + ':' + cast(DATEPART(minute, GETDATE()) as varchar)
Ответ 4
Вот синтаксис для отображения часов и минут для поля, выходящего из инструкции SELECT. В этом примере поле SQL называется "updatedOnAt" и представляет собой DateTime. Протестировано с MS SQL 2014.
SELECT Format(UpdatedOnAt ,'hh:mm') as UpdatedOnAt from MyTable
Мне нравится формат, который показывает день недели как трехбуквенное сокращение и включает в себя секунды:
SELECT Format(UpdatedOnAt ,'ddd hh:mm:ss') as UpdatedOnAt from MyTable
Суффикс "as updatedOnAt" является необязательным. Вы получите заголовок столбца, равный полю, которое вы выбрали для начала.
Ответ 5
Следующий код показывает текущий час и минуты в столбце "Час: минуты" для нас.
SELECT CONVERT(VARCHAR(5), GETDATE(), 108) +
(CASE WHEN DATEPART(HOUR, GETDATE()) > 12 THEN ' PM'
ELSE ' AM'
END) 'Hour:Minutes'
или же
SELECT Format(GETDATE(), 'hh:mm') +
(CASE WHEN DATEPART(HOUR, GETDATE()) > 12 THEN ' PM'
ELSE ' AM'
END) 'Hour:Minutes'