У меня есть эта функция в SQL Server 2014:
CREATE FUNCTION [dbo].[jdate_practice]
(@p1 INT,
@p2 CHAR(8))
RETURNS INT
AS
BEGIN
DECLARE @v2 DATETIME
SET @v2 = CAST(@p2 AS DATETIME)
RETURN ((DATEPART(yyyy, @v2) * 12) +
DATEPART(mm, @v2)) - ((@p1 * 12) + 6)
END
такой, что
select dbo.jdate_practice(2018, '20180701')
возвращает число 1, поскольку 2018 год является началом финансового года, а 20180701 - первым месяцем финансового года.
Я хочу включить функцию обработки ошибок, чтобы при отсутствии каких-либо аргументов вместо указания значения по умолчанию
Было предоставлено недостаточное количество аргументов ...
функция вернет
Пожалуйста, введите год в формате ГГГГ для @ p1
или
Пожалуйста, введите дату в формате ГГГГММДД для @ p2
Я пытался написать это сам с некоторым пониманием операторов IF
и оператора THROW
, но не смог получить правильный синтаксис функции для создания.