Ответ 1
Просто используйте первые 5 символов...?
SELECT CONVERT(VARCHAR(5),getdate(),108)
Я хочу получить только hh:mm
от даты.
Как я могу получить это?
Я попробовал это:
CONVERT(VARCHAR(8), getdate(), 108)
Просто используйте первые 5 символов...?
SELECT CONVERT(VARCHAR(5),getdate(),108)
Вы можете легко использовать функцию Format() вместо всех приведений только для SQL 2012 и выше
SELECT FORMAT(GETDATE(),'hh:mm')
На сегодняшний день это лучший способ сделать необходимое преобразование.
Другой метод с использованием встроенной функции DATEPART
:
SELECT cast(DATEPART(hour, GETDATE()) as varchar) + ':' + cast(DATEPART(minute, GETDATE()) as varchar)
Вот синтаксис для отображения часов и минут для поля, выходящего из инструкции 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" является необязательным. Вы получите заголовок столбца, равный полю, которое вы выбрали для начала.
Следующий код показывает текущий час и минуты в столбце "Час: минуты" для нас.
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'