Мне нужно создать функцию в DB2, которая будет извлекать год из текущей даты, основываясь на определенной логике
- Если номер месяца текущей даты меньше и равен 6(= любой месяц до июня), тогда предыдущий год является «базовым годом»
- Иначе, если номер месяца текущей даты больше 6 (= любой месяц после июня!), то текущийгод является «базовым годом».
Примеры:
- Базисным годом для даты «9/9/2019» является 2018, так как 4 <= 6 </li>
- Базовым годом для даты «9/3/2019» является 2019, поскольку 9> 6
Ниже приведен пример реализации для SQL Server:
CREATE FUNCTION dbo.getReferenceYear()
RETURNS int
AS
BEGIN
DECLARE @ret int;
SELECT @ret = MONTH(GETDATE())
IF (@ret <= 6)
SET @ret = (YEAR(GETDATE()) -1);
Else
SET @ret = (YEAR(GETDATE()) );
RETURN @ret;
END;
Мне нужно то же самое в db2.
Ниже приведено то, что я пробовал
CREATE FUNCTION dbo.getReferenceYear()
RETURNS INT
BEGIN ATOMIC
DECLARE _month INT;
DECLARE _year INT;
SET _month = SELECT MONTH (current timestamp) FROM sysibm.sysdummy1
if(_month<=6)
SET _year = (SELECT YEAR (current timestamp) FROM sysibm.sysdummy1) -1
ELSE
SET _year = (SELECT YEAR (current timestamp) FROM sysibm.sysdummy1)
RETURN _year
END