如何获取此列表的开始和结束时间?我可以在这个时间添加日期,并且可以按最小和最大值获得,但是你可以看到row 3
有第二天的班次,但它会在相同的日期,因为它是夜班
我添加了正常的白班员工也获得了正确的逻辑
EmployeeId ShiftDate ShiftStartTime ShiftEndTime
-----------------------------------------------------
20040 2017-11-01 21:00:00 23:00:00
20040 2017-11-01 23:00:00 00:30:00
20040 2017-11-01 00:30:00 06:00:00
20124 2017-11-01 09:00:00 16:30:00
20124 2017-11-01 16:30:00 22:00:00
20124 2017-11-01 22:00:00 22:30:00
我需要它如下:
EmployeeId ShiftDate ShiftStartTime ShiftEndTime
----------------------------------------------------
20040 2017-11-01 21:00:00 06:00:00
20124 2017-11-01 09:00:00 22:30:00
答案 0 :(得分:0)
在商业环境中,我们通过在每个班次上附加FLAG来解决这个问题。该标志将指示“报告日期”' Shift ...如果报告/管理日期为'则标志的值为1。是下一个'天。 0表示同一天。前一天的-1(我们从未使用过......取决于您的情况)
我修改了你的表以显示一个可能的SHIFTS表,我猜也应该有一个NAME列(如早晨,下午,白天,夜班等)
ReportFlag ShiftStartTime ShiftEndTime
1 21:00:00 23:00:00
1 23:00:00 00:30:00
0 00:30:00 06:00:00
0 09:00:00 16:30:00
0 16:30:00 22:00:00
1 22:00:00 22:30:00
注意我是如何加1的 - 说这个转变'实际上被认为是在下一个'一天。
然后你可以使用你的标志值0,1来添加你的查询中的DATE函数