﻿-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[date_addcustom]
(
	@date date
	,@phrase varchar(10)
)
RETURNS date
AS
BEGIN
	DECLARE @returndate date, @numpart integer = TRY_PARSE(left(@phrase, patindex('%[^0-9]%', @phrase + '.') - 1) as integer), @defpart varchar(10) = LOWER(RIGHT(@phrase, LEN(@phrase) - patindex('%[^0-9]%', @phrase + '.') + 1));

	SET @returndate = CASE WHEN @numpart is null then null
						  WHEN @defpart = 'wd' THEN [dbo].[AddBusinessDays](@date, @numpart)
						  WHEN @defpart = 'd' THEN DATEADD(DAY, @numpart, @date)
						  WHEN @defpart = 'y' THEN DATEADD(YEAR, @numpart, @date)
						  WHEN @defpart = 'm' THEN DATEADD(Month, @numpart, @date)
						  WHEN @defpart = 'wk' THEN DATEADD(WEEK, @numpart, @date)
						  ELSE @date
					END;

	RETURN @returndate;

END