在ssrs中整数到HH.MM

Integer into HH.MM in ssrs

如何在 ssrs 中将整数转换为 HH.MM?例如:如果 3600 是整数,那么输出应该是 01.00

我会质疑您为什么要以这种方式呈现您的数据,并建议您考虑一种不同的方法,例如将秒数添加到开始时间,具体取决于您的数据和报告要求。

简而言之,尽量避免 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     |
+---+-------+-----------+
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)

为此只需使用数学运算符。