【问题标题】:Adjusting time intervals for break periods?调整休息时间的时间间隔?
【发布时间】:2014-03-04 05:30:01
【问题描述】:

我的程序有一个描述生产力统计数据和目标的网格,并带有时间间隔列。此数据从 SQL Server 2005 数据库中查询,将生成的数据行与每行的时间戳相加。通常,时间间隔为 1 小时:

               |6AM-7AM | 7AM-8AM | 8AM-9AM |
Units Produced |   25   |    27   |   24    |
     Unit Goal |   26   |    26   |   26    |

但是,在预计生产力为零的休息时间段内,用户希望将休息时间段包括在前一个时间间隔中,同时保持目标数量。

以 30 分钟的用餐时间为例:

               |6AM-7AM | 7AM-8AM | 8AM-9AM | 9AM-10:30AM | 10:30AM-11:30AM |
Units Produced |   25   |    27   |   24    |     26      |       21        |
     Unit Goal |   26   |    26   |   26    |     26      |       26        |

在 8.5 小时的全天(包括 7.5 个工作小时)中,还将包含两次 15 分钟的休息时间。

我当前的实现将这些小时范围值硬编码在他们自己的表中,但这不允许休息时间的轻松变化。根据用户的要求,“限制”目标值是不可接受的(这是我的第一个设计)。

这应该在数据库层还是在应用层处理,最好的实现模式是什么?

【问题讨论】:

    标签: c# tsql sql-server-2005


    【解决方案1】:

    我最终在数据库层将其作为存储过程和硬编码表处理。

    我首先查询一天的开始和结束时间(即上午 9 点到下午 5 点)。然后,我从硬编码表中查询特定的小时间隔,每行一小时,作为每个段的开始和结束时间。接下来,我计算时间戳之间的生产力,并将两个时间戳格式化为范围标签(单列作为 varchar,'8AM-9AM')以显示在图表上。

    它不是非常优雅,但它适用于我的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-10
      • 2010-09-24
      • 2017-04-07
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多