2017-09-24 120 views
0

我是Oracle的新手。我一直在看例子如何用to_Date在兩天之間減去。 然而,每次我與TO_DATE邏輯運行此 SELECT (to_date((SELECT PAYMENT_DATE FROM INVOICES WHERE INVOICE_ID =3) - to_date((SELECT INVOICE_DUE_DATE FROM INVOICES WHERE INVOICE_ID= 3)))) FROM DUAL;我最終得到這個錯誤:ORA-01847:月日必須爲1個月減去日期ORA01847

付款日期的最後一天之間是:15-SEP- 17發票到期日期是:24-JUN-17

有沒有簡單的方法來計算兩列之間的天數差異? 在此先感謝。

回答

0

您不需要使用to_date進行轉換,而無需格式化爲'dd.mm.rrrr'。即省略to_date條款。從其減去日期產生數(假設兩個柱PAYMENT_DATE,INVOICE_DUE_DATE在date型)

SELECT (SELECT PAYMENT_DATE FROM INVOICES WHERE INVOICE_ID =3) - (SELECT INVOICE_DUE_DATE FROM INVOICES WHERE INVOICE_ID= 3) INTO v_day FROM DUAL; 

其中v_day是一個數字。順便說一下,最好使用這種方式:

SELECT (PAYMENT_DATE - INVOICE_DUE_DATE) INTO v_day FROM INVOICES WHERE INVOICE_ID =3 
+0

非常感謝。我沒有注意就讓自己變得更加困難。 – BornToBeAGamer

+0

@歡迎您:) –