Microsoft Report Builder 将十进制转换为 HH:MM

问题描述 投票:0回答:1

我有一份报告,当前显示以十进制格式 0:24 使用的时间作为示例。我想将其转换为 HH:MM,因此 0:24 应为 14:40。

为了实现这一点,我编写了以下表达式

=Floor(Fields!Time_Used.Value) & CInt(Fields!Time_Used.Value - Floor(Fields!Time_Used.Value) * 60)

此外我尝试了更简单的方法

=Fields!Time_Used.Value * 60

这两个选项都不起作用,字段返回#Error是我的逻辑或数学错误吗?

sql-server ssrs-2008
1个回答
0
投票

如果您的意思是时间以十进制小时表示,那么我认为您是在说

0.24
(不是
0:24
)意味着 14.4 分钟而不是(14:40 听起来像 14 小时 40 分钟)。如果是这种情况,那么您只需乘以 60 即可得到分钟数。

以下是快速报告的输出。左栏显示了我的表格中的表格(例如 0.24、0.75、15.75 等)。

第二列就是第一列 * 60,给出分钟数。

最后一列将此持续时间显示为“时间”。为此,我使用 DATEADD() 并将秒数(第一列 * 3600)添加到今天的日期,然后格式化该列以仅显示时间部分。

这是第二列的表达式

=Fields!decHours.Value*60

这是第三列的表达式

=DATEADD(DateInterval.Second, Fields!decHours.Value * 3600, today())

这是第三列中使用的格式代码

HH:mm:ss

这是最终输出..

所以你原来的例子 0.24 是 14.4 分钟,也就是 14 分 24 秒

© www.soinside.com 2019 - 2024. All rights reserved.