在SRS中整数到HH.MM

时间:2018-09-12 10:34:37

标签: sql sql-server-2008 ssrs-2012

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

2 个答案:

答案 0 :(得分:0)

我会问您为什么要以这种方式显示数据,并建议您考虑采用另一种方法,例如根据数据和报告要求将开始时间增加几秒钟。

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

答案 1 :(得分:0)

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)

为此仅使用数学运算符。