我試圖調用我創建的函數來獲取特定時隙的某些數據。下面給出的是我的功能的腳本: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:請告訴我相關的更正 –
你的函數只是將select的結果作爲表返回。當你可以做選擇的時候,爲什麼人們在這樣的事情上花費時間和精力? – e4c5