Я хочу создать функцию, которая будет получать дату в качестве входных данных и иметь возможность возвращать идентификатор соответствующего интервала, в котором она находится.
Например, с этой таблицей здесь:
id | start | end
-- +------------+------------
1 | 2000-11-30 | 2001-02-19
2 | 2001-02-21 | 2001-06-04
3 | 2001-06-05 | 2001-07-13
4 | 2001-07-15 | 2001-11-29
Если я ввожу дату «2001-04-17», я хочу, чтобы он возвращал значение идентификатора 2.
Я сейчас пытаюсь это сделать, но не могу получить его. работа:
create or replace function getId(_date date) returns integer
as $$
declare
myId integer;
begin
set myId = (select id from myTable
where ((_date >= start) and (_date <= end)));
return myId;
end;
$$ language plpgsql
;