From 840b7ff90cc60379761b24c04a090e1f3fa77835 Mon Sep 17 00:00:00 2001 From: Christopher Lenke <christopher.lenke@uni-bielefeld.de> Date: Mon, 23 Sep 2024 19:20:30 +0200 Subject: [PATCH] 23.09.2024 --- .../is_hi_in_date_pg_int8__date__date_.txt | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Functions/is_hi_in_date_pg_int8__date__date_.txt diff --git a/Functions/is_hi_in_date_pg_int8__date__date_.txt b/Functions/is_hi_in_date_pg_int8__date__date_.txt new file mode 100644 index 0000000..5e9eaa0 --- /dev/null +++ b/Functions/is_hi_in_date_pg_int8__date__date_.txt @@ -0,0 +1,43 @@ +-- DROP FUNCTION schema_xyz.is_hi_in_date_pg(int8, date, date); + +CREATE OR REPLACE FUNCTION schema_xyz.is_hi_in_date_pg(my_uid bigint, my_first_date date, my_last_date date) + RETURNS bigint + LANGUAGE plpgsql +AS $function$ + + +DECLARE + + +ergebnis bigint; + + +BEGIN + +select count(*) into ergebnis +from schema_xyz.relation where uid_1=my_uid and uid_0=0 +and type in (0,1) +--and ((extract(year from first_date) <= my_first_year and extract(year from last_date) > my_first_year) +--or (extract(year from first_date) < my_last_year and extract(year from last_date) >= my_last_year)); +and ((first_date >= my_first_date and first_date <= my_last_date) +or (last_date >= my_first_date and last_date <= my_last_date) +or (first_date <= my_first_date and last_date >= my_last_date) +); + +/* +if my_first_year=my_last_year then +select count(*) into ergebnis +from relation where uid_1=my_uid and uid_0=0 +and type in (0,1) +and ((extract(year from first_date) = my_first_year and extract(year from last_date) = my_last_year)); +end if; +*/ +if ergebnis >0 then ergebnis:=1; +else ergebnis:=0; +end if; + +RETURN ergebnis; +end; + +$function$ +; -- GitLab