Конвертировать минуты в часы - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь перевести минуты в часы.

У меня есть, например, минуты = 27822 и хотят преобразовать это время в часы, даже если оно проходит 24:00, т.е. 27822 минуты = 52:45. Я пробовал:

CAST([Down Time Minutes] AS DECIMAL(38, 8)) / 3600

Это дает мне только часы, т. Е. 03:50, а не дни, включенные, если время превышает 24 часа

1 Ответ

0 голосов
/ 02 июля 2019

Пожалуйста, пожалуйста, прочитайте комментарии, которые оставили Ларну и Гордон Линофф - там есть очень хорошие моменты и вопросы, которые следует рассмотреть, особенно о том, как вы решаете хранить свои данные по сравнению с тем, как вы их представляете.

Но так как мой кофе выглядел как забавная разминка, и мне всегда нужна причина, чтобы проверить мою установку 2005 года, вот несколько вариантов преобразования вашего INT во что-то вродекак часыВсе они будут выводить 463: 42, как указал Гордон.

DECLARE @t INT;
SET @t = 20;

/*SQL Server pre-2008*/
SELECT LEFT('00',2-LEN(@t/60))+CAST((@t/60) AS VARCHAR(5)) + ':' + LEFT('00',2-LEN(@t%60))+CAST((@t%60) AS VARCHAR(2)) 

/*SQL Server 2008+ -- longer, but we get to play with REPLICATE*/
SELECT  REPLICATE('0',2-LEN(@t/60))+CAST((@t/60) AS VARCHAR(5)) + ':' + REPLICATE('0',2-LEN(@t%60))+CAST((@t%60) AS VARCHAR(2))

/*SQL Server 2012+*/
SELECT CONCAT(FORMAT((@t/60),'0#'),':',FORMAT((@t%60),'0#'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...