我有一份报告,当前显示以十进制格式 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是我的逻辑或数学错误吗?
如果您的意思是时间以十进制小时表示,那么我认为您是在说
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 秒