(從前一篇文章移除) - 抱歉,如果這被看作是重複! 大家好, 只是有一些問題與日期計算和從功能中的日期減去。Oracle sql - 函數內的日期減法
我很困惑我應該使用的數據類型,因爲我不得不從日期to_char轉換爲例如。我不確定是否將返回類型設置爲varchar2或date?
這裏是接收car_id,看起來在表中那部車,翻出車到達日期,並將其存儲在變量
一個日期與日期,相同的功能。
然後將兩個日期轉換爲to_char,進行相減並將其返回到varchar2中。
當我調用函數時,它會輸入car_id作爲參數, 然後將返回的結果存儲在varchar變量中,以用於dbms輸出。 例如。
v_result := get_duration('0001')
這裏是功能:
DROP FUNCTION get_duration;
CREATE FUNCTION get_duration (p_car_id number)
RETURN varchar2 is
v_arrive date;
v_depart date
v_duration varchar2(25); --not too sure about this variable choice
begin
select arrival, departure
into v_arrive, v_depart
from car_info
where car_id = p_car_id;
v_duration := to_char(v_depart, 'dd-mon-yyyy hh24:mi:ss') - to_char(v_arrive, 'dd-mon-yyyy hh24:mi:ss')
return v_duration;
END;
/
正如你所看到的,我試圖把開始和結束時間從表中的變量,然後減去從一開始就結束日期日期。
功能編譯,但有一個警告,當我要調用的函數,錯誤:get_duration無效
任何對此的投入將極大地好評,
很抱歉,如果該職位是比較大!
問候,
達倫
當'v_stop'和'v_start'沒有聲明時它是如何編譯的? – Ollie 2012-03-02 12:56:56
@Ollie - '警告:使用編譯錯誤創建函數。「* 8- 8-)。在前面的Q中,我建議提供'show errors'的輸出,無論如何都會首先標記缺失的';'。 – 2012-03-02 13:35:50