Я пытался вызвать функцию, созданную мной для получения некоторых данных для определенного временного интервала. Ниже приведен сценарий моей функции:POSTGRESQL - вызывающая функция с разным временем в качестве входного параметра
CREATE OR REPLACE FUNCTION my_function(
starttime timestamp with time zone,
endtime timestamp with time zone)
RETURNS TABLE("Deviceid" integer, "AlertTime" timestamp with time zone)
LANGUAGE 'plpgsql'
COST 100.0
AS $function$
DECLARE
r record;
BEGIN
SELECT "DeviceID" , "AlertTime" FROM my_table
WHERE "AlertTime" BETWEEN starttime AND endtime;
END;
$function$;
ALTER FUNCTION public.my_function(timestamp with time zone, timestamp with time zone)
OWNER TO postgres;
Когда я звоню функции со временем «2016-12-15 00:00:01» до «2016-12-15 18:00:00» Я не получая никакой записи. Даже для многих записей, доступных для временного интервала, я проверил его, передав одинаковые значения времени для запроса внутри функции, правильно извлекая данные.
select * from my_function('2016-12-14 00:00:01','2016-12-15 18:00:00')
Но когда я вызываю функцию с 2016-12-15 00:00:00' до „2016-12-15 18:00:00“ Я могу получить все записи.
select * from my_function('2016-12-14 00:00:00','2016-12-15 18:00:00')
Даже я попытался изменить входные параметры для «характер изменения», и преобразовывает внутренне штамп времени даже тогда она не работает.
ваша функция полностью избыточна! – e4c5
@ e4c5: сообщите мне соответствующую коррекцию –
, ваша функция просто возвращает результат выбора в виде таблицы. почему на Земле тратить время и силы на такие вещи, когда вы можете просто выбрать? – e4c5