У меня есть это:
CREATE FUNCTION [dbo].[udf_SLA_AdjustDateTimeForBusinessHours]
(
@DateTime DateTime
)
RETURNS DateTime
AS
BEGIN
DECLARE @AdjustedDate DateTime;
If dbo.udf_SLA_IsBusinessDay(@DateTime) = 1
BEGIN
IF dbo.udf_SLA_IsWithinBusinessHours(@DateTime) = 1
SET @AdjustedDate = @DateTime
Else
BEGIN
IF dbo.udf_TimeOnly(@DateTime) < dbo.udf_Time(8,0,0)
SET @AdjustedDate = dbo.udf_DateOnly(@DateTime) + dbo.udf_Time(8, 0, 0)
ELSE
SET @AdjustedDate = dbo.udf_SLA_AdjustDateTimeForBusinessHours(dbo.udf_DateOnly(@DateTime) + 1 + dbo.udf_Time(8, 0, 0))
END
END
RETURN @AdjustedDate
END
Это интересная часть:
SET @AdjustedDate = dbo.udf_SLA_AdjustDateTimeForBusinessHours(dbo.udf_DateOnly(@DateTime) + 1 + dbo.udf_Time(8, 0, 0))
Я хочу вызвать функцию из самой функции. Как и сейчас, все, что я получаю, это NULL при выполнении этой ветви кода. Это где используется CTE?
udf_SLA_IsBusinessDay и udf_SLA_IsWithinBusinessHours говорят сами за себя. udf_DateOnly, udf_TimeOnly, udf_Time и т. д. происходят из здесь .