Разница между двумя датами в postgresql

Функция:

CREATE FUNCTION diff(d1 date,d2 date) RETURNS int AS $
BEGIN
IF d1 = NULL THEN
RETURN SELECT extract(year from age(current_date,d2));
ELSE
RETURN SELECT extract(year from age(d1,d2));
END IF;
END
$ language plpgsql;

Мое требование - найти разницу между двумя датами в годах. Итак, я пишу вышеупомянутую функцию. Здесь, если d1 равен NULL, ему присваивается текущая дата. Но это приводит к ошибке, как показано ниже.

ERROR:  syntax error at or near "SELECT"
LINE 1: SELECT  SELECT extract(year from age(current_date, $1 ))
QUERY:  SELECT  SELECT extract(year from age(current_date, $1 ))
CONTEXT:  SQL statement in PL/PgSQL function "diff" near line 4 

Помогает ли кто-нибудь мне решить эту проблему.

Ответы на вопрос(1)

Ваш ответ на вопрос