我開發使用Oracle10g數據庫的特定軟件。如果DATE具有特定格式(不是日期),則返回兩個日期之間的天數
此軟件在DB中有它自己的日期,時間格式: CurrentDate =從01.01.0001開始經過的天數。 這個數字以整數值存儲在DB中,例如:當前日期等於735192.
我需要將SYSDATE轉換爲此格式。如何通過Oracle執行此操作?
我試着寫一些功能和SQL requst:
CREATE OR REPLACE
FUNCTION MyDaysBetween(aNow IN NUMBER,aThen IN NUMBER) RETURN NUMBER;
IS BEGIN
IF(aNow > aThen) THEN
RETURN (aNow - aThen);
ELSE
RETURN (aThen - aNow);
END IF;
END MyDaysBetween;
FUNCTION QAZ_SYSDATENOW() RETURN NUMBER; /*Converting SYSDATE(20.11.2013) to number of days since 01.01.0001*/
IS
BEGIN
RETURN SELECT SYSDATE - TO_DATE('01.01.0001','DD.MM.YYYY') FROM DUAL;
END MyDaysBetween;
SELECT * FROM TESTS T WHERE (MyDaysBetween(QAZ_SYSDATENOW(),T.D2) = 5); /*T.D2 contains 15.11.2013 asinteger number of days */
可是,我不工作,我找不到什麼是錯的。
我建議SYSDATE後以刪除括號。 – tvm
我刪除它,沒有任何改變。如何調試腳本?我如何在運行時查看返回函數? – Alexandr
調試器(Oracle的SQLDeveloper IDE有一個)或dbms_output軟件包可以幫助您瞭解正在發生的事情。 – tvm