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

sql sql-server tsql sql-server-2005

2395 просмотра

1 ответ

156 Репутация автора

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

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

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

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

Автор: D B Источник Размещён: 18.07.2016 02:24

Ответы (1)


3 плюса

13610 Репутация автора

Решение

Вы можете получить результат 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
Автор: shA.t Размещён: 18.07.2016 02:27
Вопросы из категории :
32x32