Конвертировать smallint во время

Я пытаюсь преобразоватьsmallint кtime формат.

Я использую SQL Server 2005, который не поддерживаетtime тип данных.

Я храню время как 1400, который являетсяsmallint, При получении я хочу, чтобы он был преобразован в формат времени. Такие как14:00

Любые идеи или рекомендации по этому вопросу. Есть ли более простой способ сделать это, или если мой способ возможен?

 Tab Alleman18 июл. 2016 г., 16:27
Что именно вы подразумеваете под «форматом времени»? Так как вы не можете вернутьtime тип данных в SQL 2005, вы хотите varchar? свидание?
 Siyual18 июл. 2016 г., 16:27
Вы хотите, чтобы это преобразовали в varchar14:00? Как вы хотите, чтобы это было преобразовано?
 D B18 июл. 2016 г., 16:29
либо tbh, выяснение возможных путей, прежде чем принимать решение @TabAlleman
 D B18 июл. 2016 г., 16:42
@TabAlleman ценная помощь по переполнению стека Благодарю.

Ответы на вопрос(1)

Решение Вопроса

Вы можете получить результат какvarchar используя это:

SELECT 
    RIGHT('0' + CONVERT(varchar(10), yourTime / 100), 2) + ':' +  
    RIGHT('0' + CONVERT(varchar(10), yourTime % 100), 2) As timeString
FROM
    yourTable

Вы также можете иметь результат вDATETIME формат как это:

SELECT 
    CONVERT(datetime, CONVERT(varchar(10), yourTime / 100)+ ':' + CONVERT(varchar(10), yourTime % 100))
FROM
    yourTable

В SQL Server 2012+ вы можете получить результат в формате времени:

SELECT 
    TIMEFROMPARTS(yourTime / 100, yourTime % 100, 0, 0, 0) As timeFormat
FROM 
    yourTable
 Martin Smith18 июл. 2016 г., 16:33
Да, так что бесполезно для ОП здесь тогда ...
 Martin Smith18 июл. 2016 г., 16:29
Не мой dv ноTIMEFROMPARTS недоступен в 2005 году.
 Siyual18 июл. 2016 г., 16:29
ОП конкретно упоминает в своем вопросе, что он использует SQL Server 2005, который не поддерживаетTIME тип данных.

Ваш ответ на вопрос