如何将DateDiff计算出的小时小数格式化为hh:mm时:分格式?
如何将DateDiff的分钟差转为hh:mm格式(SSRS)
我来帮你搞定这个格式问题!你现在得到的是小数形式的小时数,要转成hh:mm的话,有两种简单的方法在SSRS里实现:
方法一:直接拆分小时和分钟
先计算出两个时间之间的总分钟数,然后分别提取小时(总分钟数整除60)和分钟(总分钟数取余60),最后把这两部分格式化为两位数并拼接起来:
=Format(DateDiff("n", Fields!StartOfDay.Value, Fields!EndOfDay.Value) \ 60, "00") & ":" & Format(DateDiff("n", Fields!StartOfDay.Value, Fields!EndOfDay.Value) Mod 60, "00")
\是整数除法运算符,只会保留商的整数部分(比如467分钟的话,467\60=7)Mod是取余运算符,得到剩下的分钟数(467 Mod 60=47)Format(..., "00")确保小时/分钟不足两位时自动补零(比如5分钟会显示为05)
方法二:利用日期格式化
把总分钟数加到一个午夜基准时间(#00:00#)上,然后直接格式化这个新时间的小时和分钟部分:
=Format(DateAdd("n", DateDiff("n", Fields!StartOfDay.Value, Fields!EndOfDay.Value), #00:00#), "HH:mm")
这种方法更简洁,DateAdd会把总分钟数加到0点上,生成一个新的时间,再用HH:mm格式直接提取小时和分钟,自动处理补零。
比如你之前得到的7.78小时(约467分钟),用这两种方法都会输出07:47,完美符合你的需求!
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

