从表中查找当前的工作班次

时间:2017-02-27 18:36:49

标签: mysql vb.net calendar schedule

我正在创建换班时间表,每天都有自己的开始/结束时间。下表仅显示星期日和星期日。星期一,但实际的表格将有7天。我希望能够根据当前时间显示当前的班次(desc)。这是直截了当,直到我到达第3班,特别是午夜。如果是星期一早上5点,那实际上是星期天的第3班。我怎样才能解决这个问题,要么让桌子工作,要么是否有更好的方法可以解决这个问题?

ID  Desc Sunday_Start  Sunday_End  Monday_Start  Monday_End
1   1st  07:00:00      15:00:00    07:00:00      15:00:00
2   2nd  15:00:00      23:00:00    15:00:00      23:00:00
3   3rd  23:00:00      07:00:00    23:00:00      07:00:00

我注意到这篇文章, DateTime range issue when time passes midnight,但看起来它主要是为了每天都有可重复的转变。

客户真的希望每一天都与众不同。我还没有决定是用MySQL还是用XML。所以,有一个问题,有更好的方法吗?我正在寻找日历并使用重复约会,但我没有看到任何值得的免费。有人对此有任何见解吗?

我正在使用Visual Studio 2015 vb.net&的MySQL。

1 个答案:

答案 0 :(得分:0)

您的班次表应该是这样的......

enter image description here

与excel不同,数据库应始终每个“Item”有一条记录(Row)......

注意我使用了Shift_Length而不是Shift_End。 Shift_Length以小时为单位。因此可以从两个计算Shift_End。

现在搜索当前班次仅涉及确定当前时间和当前时间。时间在指示日期和Start_Time的Shift_Length范围内。