GO
CREATE FUNCTION dbo.FN_GetLocalTime_FromUTC_BasedOnTZId
(
@StartDate datetime
, @EndDate datetime
, @TimeZone int
)
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN (
SELECT TOP(1) StartDate = DATEADD(SECOND, dls.DSTOffSetSeconds + dls.GMTOffSetSeconds, @StartDate)
, EndDate = DATEADD(SECOND, dle.DSTOffSetSeconds + dle.GMTOffSetSeconds, @EndDate)
FROM dbo.DSTLookup dls
CROSS APPLY dbo.DSTLookup dle
WHERE dls.DT_WhenSwitch <= @StartDate
AND dle.DT_WhenSwitch <= @EndDate
AND dls.Tzid = @TimeZone