Целое число в ЧЧ.ММ в ССР - PullRequest
0 голосов
/ 12 сентября 2018

Как конвертировать целое число в HH.MM в ssrs?Пример: если 3600 является целым числом, то результат должен быть 01.00

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018
declare @s int;
set @s = 3760

select right('00' + cast (@s/3600 as nvarchar(max)) , 2) +':' +right('00' +cast((@s % 3600)/60 as nvarchar(max)) ,2)

просто используйте математические операторы для этой цели.

0 голосов
/ 12 сентября 2018

Я хотел бы спросить, почему вы хотите представить свои данные таким образом, и предложить вам рассмотреть другой подход, такой как добавление секунд к времени начала, в зависимости от ваших данных и требований к отчетности.

Короче, старайтесь избегать форматирования текста в SQL.Он не создан для этого.


Это в стороне, чтобы ответить на ваш вопрос;это довольно стандартное целочисленное деление и математика по модулю.Вы хотите сначала преобразовать свои секунды в минуты, разделив на 60, а затем в часы, снова разделив на 60.Вместо этого можно использовать модуль по модулю, чтобы получить минуты, оставшиеся от расчета часов.Остальное форматирование текста:

declare @t table (s int);
insert into @t values(3600),(28800)

select s
        ,right('00' + cast(s/60/60 as varchar(2)),2) + '.' + right('00' + cast(s/60%60 as varchar(2)),2) as Formatted
from @t

Вывод:

+---+-------+-----------+
|   |   s   | Formatted |
+---+-------+-----------+
| 1 |  3600 | 01:00     |
| 2 | 28800 | 08:00     |
+---+-------+-----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...