Есть ли какая-либо функция в SQL Server для преобразования числа в формат времени? - PullRequest
0 голосов
/ 18 июня 2010

Я получаю целое число на весь срок действия продукта. Например: 62, 103, 184, 4543. Я хочу преобразовать его в формат времени. Допустим, в случае 62 он будет иметь формат «00: 01: 02». Я ищу функцию, которая может решить мою проблему. Есть ли в SQL Server какая-либо функция, которая конвертирует число в формат времени?

Ответы [ 2 ]

1 голос
/ 18 июня 2010
declare @d datetime
Set @d = Convert(datetime, '20010101',112 )

Set @d = dateadd(s, 62, @d)  --add 62 seconds to base date

Select convert(varchar,@D,108)
1 голос
/ 18 июня 2010

Ну, у вас есть два варианта. Вы можете сделать деление на 60 самостоятельно так:

SELECT  RIGHT('0' + CAST(@seconds / 3600 AS varchar), 2) + ':' +
        RIGHT('0' + CAST((@seconds / 60) % 60 AS varchar), 2) + ':' +
        RIGHT('0' + CAST(@seconds % 60 AS varchar), 2)

Или вы можете сделать что-то вроде даты и времени:

SELECT  CONVERT(varchar,
                DATEADD(second, @seconds, CAST('1-Jan-2000' AS datetime)),
                8)

Формат 8: чч: ми: сс от здесь .

...