Пожалуйста, пожалуйста, прочитайте комментарии, которые оставили Ларну и Гордон Линофф - там есть очень хорошие моменты и вопросы, которые следует рассмотреть, особенно о том, как вы решаете хранить свои данные по сравнению с тем, как вы их представляете.
Но так как мой кофе выглядел как забавная разминка, и мне всегда нужна причина, чтобы проверить мою установку 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#'))