【发布时间】:2017-02-27 18:36:49
【问题描述】:
我正在为轮班时间创建一个表格,每天都有自己的开始/结束时间。下表仅显示星期日和星期一,但实际表格将有 7 天。我希望能够根据当前时间显示当前班次(desc)。这是直截了当的,直到我上第三班,特别是午夜过后。如果是周一早上 5 点,那实际上是周日的第三班。我该如何解决这个问题,或者让桌子工作,或者是否有更好的方法来解决它?
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。
【问题讨论】:
-
您可能希望将数据保存为 Start Time 和 Shift Length 而不是 Shift_End。您仍然可以将其显示为时间,但它会使数学变得更容易。
-
每天/班次组合也应该有一行。
-
我有错误的链接,我将使用 TimeSpan,所以数学不是问题。此外,不确定行/表的排列是否会有很大的不同。感谢 Trevor 和 Paul 的回复,但对我的帖子没有太大帮助。
-
我们确实回答了詹姆斯的问题。如果您有一个简单的表格,每行一个班次,一天,开始时间和持续时间。在给定当前日期和时间的情况下,找出当前的行是一件简单的事情。
-
(好的)数据库设计的重点是摆脱这样的重复列。
标签: mysql vb.net calendar schedule