Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调整休息时间间隔?_C#_Tsql_Sql Server 2005 - Fatal编程技术网

C# 调整休息时间间隔?

C# 调整休息时间间隔?,c#,tsql,sql-server-2005,C#,Tsql,Sql Server 2005,我的程序有一个描述生产率统计数据和目标的网格,其中列表示时间间隔。从SQLServer2005数据库查询此数据,将生成的数据行与每行的时间戳相加。通常,时间间隔为1小时: |6AM-7AM | 7AM-8AM | 8AM-9AM | Units Produced | 25 | 27 | 24 | Unit Goal | 26 | 26 | 26 | 但是,在预期生产率为零的休息期间,用户希望在保持目

我的程序有一个描述生产率统计数据和目标的网格,其中列表示时间间隔。从SQLServer2005数据库查询此数据,将生成的数据行与每行的时间戳相加。通常,时间间隔为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分钟的休息

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


这是在数据库层还是在应用程序层上处理,实现的最佳模式是什么?

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

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

它不是非常优雅,但它符合我的目的