2016-12-16 6 views
0

Я пытался вызвать функцию, созданную мной для получения некоторых данных для определенного временного интервала. Ниже приведен сценарий моей функции: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') 

Даже я попытался изменить входные параметры для «характер изменения», и преобразовывает внутренне штамп времени даже тогда она не работает.

+0

ваша функция полностью избыточна! – e4c5

+0

@ e4c5: сообщите мне соответствующую коррекцию –

+0

, ваша функция просто возвращает результат выбора в виде таблицы. почему на Земле тратить время и силы на такие вещи, когда вы можете просто выбрать? – e4c5

ответ

1

Объяснение очевидно, не так ли?

Все соответствующие строки от mytable имеют "AlertTime" больше или равно 2016-12-14 00:00:00 и меньше 2016-12-14 00:00:01.

+0

Я проверил его, передав одинаковые значения времени для запроса внутри функции, правильно извлекая данные. –

+0

Тогда ваша настоящая функция должна сделать что-то, если это возможно из того, что вы задали. –

Смежные вопросы