我正在处理有计数器运行的应用程序,现在我们需要在休息时间和外班时间停止这些计数器。 使用SQL 2008.目前我在SQL中有以下内容:
中断表:BREAK(BreakID INT,Start_Time TIME(0),End_Time TIME(0))
Data in SHIFT TABLE
1 1st 07:20:00 15:20:00
2 2nd 15:20:00 23:20:00
3 3rd 23:20:00 07:20:00
Data in BREAK TABLE
1 1st Shift - 1st break 09:10:00 09:25:00
2 1st Shift - Lunch 11:30:00 12:05:00
3 1st Shift - 2nd break 13:30:00 13:45:00
4 2nd Shift - 1st break 17:10:00 17:25:00
5 2nd Shift - Lunch 19:30:00 20:05:00
6 2nd Shift - 2nd break 21:30:00 21:45:00
7 3rd Shift - 1st break 01:10:00 01:25:00
8 3rd Shift - Lunch 03:30:00 04:05:00
9 3rd Shift - 2nd break 05:30:00 05:45:00
我在想通过计算工作时间((Event_Stop_Date / Current_Time - Last_Event_Start_Time) - (班次时间+时间延迟时间))将帮助我在柜台上显示价值,以及当前时间是在班次和外面休息时间计数器将运行,否则将停止。
我试图以不同的方式处理这个问题而没有运气。你可以帮我解决一下SQL函数,它可以在2个日期之间返回两个值Work_hours,并根据end_datetime / current_date_time是否在工作时间内标记。
CREATE FUNCTION [dbo].[Fnt_GetWorkTime]
(
@Start_Time DATETIME
,@End_Time DATETIME
)
RETURNS @TableReturn TABLE
(
WorkTimeInSec INT,
CurrentTimeWorkTime BIT
)
RETURN;
END
提前感谢您的帮助