计算两次之间的时间范围(SSRS)

时间:2016-09-23 09:46:44

标签: reporting-services reporting

我有一份SSRS报告,在报告中我有一张表 开始时间,工作时间(持续时间),旅行时间(持续时间)

我正在使用开始时间和持续时间来计算'结束时间'

但是我还需要解决以下问题 工作时间为0600 - 0800 工作时间为1700 - 2200 工作时间为2200 - 0600

并且不知道从哪里开始

1 个答案:

答案 0 :(得分:0)

您只需设置所有逻辑步骤即可。回答问题"我的持续时间在0600和0800之间的几小时?"有几个子问题,在回答时会给你一些必要的值来计算你的答案:

时间段是否重叠0600-0800?
或者,是0800之前的开始时间和0600之后的结束时间?

如果不是,则答案是0。
或者,返回0。

如果是,那么时间段是否在0600之前开始,所以你必须忽略一些时间?
或者,计算的开始时间是您的开始时间和0600中的较大值。

那么,时间段是否在0800之后结束,所以你必须忽略一段时间?
或者,计算的结束时间是较小的或您的结束时间和0800。

用您选择的语言将它们组合在一起:

If StartTime <= 0800 and EndTime >= 0600
    calculate time between
            if StartTime < 0600
                0600
            else
                StartTime
        and 
            if EndTime > 0800
                0800
            else
                EndTime
else
    0