调整休息时间的时间间隔?

时间:2014-02-07 00:25:56

标签: c# tsql sql-server-2005

我的程序有一个描述生产力统计和目标的网格,其中包含时间间隔列。从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分钟的休息时间。

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

是应该在数据库层还是在应用层上处理,以及实施的最佳架构是什么?

1 个答案:

答案 0 :(得分:0)

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

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

它并不是非常优雅,但它可以用于我的目的。