2012-01-30 3 views
1

Я используюФормат чч: мм с SQL Server

CONVERT(CHAR(5), DATEADD(n, value),0), 108) 

конвертировать минут в формат hh:mm, но он ломает, когда у меня есть несколько минут, затем помещается в 24hrs. Например. 1440 дает 00:00 вместо 24:00.

Как это исправить?

ответ

2

Рассмотрим с помощью оператора % по модулю:

select cast(n/60 as varchar(20)) + ':' + 
     right('0' + cast(n%60 as varchar(2)), 2) 
+0

работает почти, за исключением того, что дает например, 24: 0, а не 24:00. Есть ли возможность исправить это? – Lennart

+0

Вы можете использовать префикс «0» и использовать самые последние два символа, ответ отредактировал – Andomar

+0

. Надеюсь на более чистое решение, угадайте, что код - это не всегда поэзия. Благодарю. – Lennart

1

Попробуйте что-то вроде этого:

declare @minutes int 
select @minutes = 1440 

select convert(varchar, @minutes/60) + ':' + right ('0'+convert(varchar, @minutes%60), 2) 
Смежные вопросы