Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перевод секунд в формат чч:мм:сс без даты  [new]
CS_user
Member

Откуда:
Сообщений: 2
Добрый день.

Есть поле "Total_Duration" которое хранит в себе время в секундах (например 136580). Необходимо преобразовать эти секунды в формат чч:мм:сс. Т.е. получить следующее: 37:56:20.

Подскажите как это сделать, пожалуйста.
22 авг 17, 16:19    [20741862]     Ответить | Цитировать Сообщить модератору
 Re: Перевод секунд в формат чч:мм:сс без даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
CS_user
Добрый день.

Есть поле "Total_Duration" которое хранит в себе время в секундах (например 136580). Необходимо преобразовать эти секунды в формат чч:мм:сс. Т.е. получить следующее: 37:56:20.

Подскажите как это сделать, пожалуйста.
А если получатся тысячи часов?
22 авг 17, 16:21    [20741871]     Ответить | Цитировать Сообщить модератору
 Re: Перевод секунд в формат чч:мм:сс без даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
DECLARE @T INT=136565;
SELECT CAST(@T/3600 AS VARCHAR)+':'+REPLACE(STR(@T%3600/60,2),' ','0')+':'+REPLACE(STR(@T%3600%60,2),' ','0');
22 авг 17, 16:28    [20741889]     Ответить | Цитировать Сообщить модератору
 Re: Перевод секунд в формат чч:мм:сс без даты  [new]
CS_user
Member

Откуда:
Сообщений: 2
iap
CS_user
Добрый день.

Есть поле "Total_Duration" которое хранит в себе время в секундах (например 136580). Необходимо преобразовать эти секунды в формат чч:мм:сс. Т.е. получить следующее: 37:56:20.

Подскажите как это сделать, пожалуйста.
А если получатся тысячи часов?


В моем случае маловероятно, что будут значения больше 48-ми часов.


iap
DECLARE @T INT=136565;
SELECT CAST(@T/3600 AS VARCHAR)+':'+REPLACE(STR(@T%3600/60,2),' ','0')+':'+REPLACE(STR(@T%3600%60,2),' ','0');


Спасибо, вроде то, что нужно :)
24 авг 17, 17:16    [20747615]     Ответить | Цитировать Сообщить модератору
 Re: Перевод секунд в формат чч:мм:сс без даты  [new]
RMAN54
Member

Откуда:
Сообщений: 185
Вариант №2 )
DECLARE @t INT 
SET @t= 136580
SELECT  CAST(@t/3600 AS VARCHAR(20))+ right( CONVERT(VARCHAR(10), DATEADD(ss,@t,0),108),6)
25 авг 17, 06:14    [20748252]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить