首页 > 解决方案 > 在 ssrs 中整数到 HH.MM

问题描述

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

标签: sqlsql-server-2008ssrs-2012

解决方案


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

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

推荐阅读