2017-09-24 12 views
0

私はオラクルの初心者です。私はto_Dateで2日間を引く方法を例を見てきました。 はしかし、毎回私は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

2つの列間の日数の差異を簡単に計算する方法はありますか? ありがとうございます。

答えて

0

'dd.mm.rrrr'のような書式設定なしでto_dateを使用して変換する必要はありません。すなわち、to_date句を省略します。 Substracting日付はv_dayは数字

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; 

数(両方の列PAYMENT_DATEを仮定すると、INVOICE_DUE_DATEはdateタイプである)を得ました。ところで、この方法で使用する方が良いです:

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

ありがとうございました。気づかずに自分自身をもっと難しくしていただけです。 – BornToBeAGamer

+0

@あなたは大歓迎です:) –