dbo.QBM_FGIDateTimeSpanOverlap
Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB
Interpretation
- Database function. Usually supports views, validation, or calculated predicates; look at referenced-by entries for callers.
Relations
- No extracted relations.
Typed Edges
- references source dbo.QBM_FGIDate source text reference
References
Referenced By
Complete Source
1CREATE FUNCTION dbo.QBM_FGIDateTimeSpanOverlap(2 @From1 datetime,3 @To1 datetime,4 @From2 datetime,5 @To2 datetime,6 @ToDatewWithAutoEvening BIT7) RETURNS BIT8 WITH SCHEMABINDING9AS10BEGIN11 DECLARE @Erg BIT = 012 DECLARE @From1_I datetime = isnull(@From1,13 '1899-12-30')14 DECLARE @From2_I datetime = isnull(@From2,15 '1899-12-30')16 DECLARE @To1_I datetime17 DECLARE @To2_I datetime18 IF @ToDatewWithAutoEvening = 019 BEGIN20 SELECT21 @To1_I = isnull(@To1,22 '2200-01-01')23 SELECT24 @To2_I = isnull(@To2,25 '2200-01-01')26 END27 ELSE28 BEGIN29 SELECT @To1_I = @To130 SELECT @To2_I = @To231 IF convert(datetime,32 CONVERT(date, @To1_I)) = @To1_I33 BEGIN34 SELECT35 @To1_I = DATEADD(SS,36 86399,37 @To1_I)38 END39 IF convert(datetime,40 CONVERT(date, @To2_I)) = @To2_I41 BEGIN42 SELECT43 @To2_I = DATEADD(SS,44 86399,45 @To2_I)46 END47 SELECT48 @To1_I = isnull(@To1_I,49 '2200-01-01')50 SELECT51 @To2_I = isnull(@To2_I,52 '2200-01-01')53 END54 IF @From1_I >= @From2_I55 BEGIN56 IF @To1_I <= @To2_I57 BEGIN58 SELECT @Erg = 159 RETURN(@erg)60 END61 IF @To2_I BETWEEN @From1_I AND @To1_I62 BEGIN63 SELECT @Erg = 164 RETURN(@erg)65 END66 END67 ELSE68 BEGIN69 IF @To2_I <= @To1_I70 BEGIN71 SELECT @Erg = 172 RETURN(@erg)73 END74 IF @To1_I BETWEEN @From2_I AND @To2_I75 BEGIN76 SELECT @Erg = 177 RETURN(@erg)78 END79 END80 endLabel:81 RETURN(@erg)82END
Open raw exported source
1 create function dbo.QBM_FGIDateTimeSpanOverlap(@From1 datetime , @To1 datetime , @From2 datetime , @To2 datetime , @ToDatewWithAutoEvening2 bit ) returns bit with SCHEMABINDING as begin declare @Erg bit = 0 declare @From1_I datetime = isnull(@From1, '1899-12-30') declare @From2_I datetime3 = isnull(@From2, '1899-12-30') declare @To1_I datetime declare @To2_I datetime if @ToDatewWithAutoEvening = 0 begin select @To1_I = isnull(@To1, '2200-01-01'4) select @To2_I = isnull(@To2, '2200-01-01') end else begin select @To1_I = @To1 select @To2_I = @To2 if convert(datetime, CONVERT(date, @To1_I)) = @To1_I5 begin select @To1_I = DATEADD(SS, 86399, @To1_I) end if convert(datetime, CONVERT(date, @To2_I)) = @To2_I begin select @To2_I = DATEADD(SS, 86399, @To2_I6) end select @To1_I = isnull(@To1_I, '2200-01-01') select @To2_I = isnull(@To2_I, '2200-01-01') end if @From1_I >= @From2_I begin if @To1_I <= @To2_I7 begin select @Erg = 1 return(@erg) end if @To2_I between @From1_I and @To1_I begin select @Erg = 1 return(@erg) end end else begin if @To2_I <=8 @To1_I begin select @Erg = 1 return(@erg) end if @To1_I between @From2_I and @To2_I begin select @Erg = 1 return(@erg) end end endLabel: return(@erg9) end 10