2016-10-21 11 views
-1
----extract(month from diff) "month",------(adding this line gives error to the original code) 

select extract(day from diff) Days, 
     extract(hour from diff) Hours, 
     extract(minute from diff) Minutes 
from (
    select (CAST(creation_date as timestamp) - CAST(old_creation_date as timestamp)) diff 
    from [Table Name] 
); 

このコードは本当に分かりやすいです。しかし、誰かが、私は、コードをしようとすると、それは私に次のエラーを与え、ここで、同様の月を計算する方法を説明してくださいできますOracle SQLで2つの日付/時刻の差を計算する(更新済み)

ORA-30076: invalid extract field for extract source

この質問はすでに(このフォーラムで議論されてきた月を除き、それは私ではありませんコードも、元はhttps://stackoverflow.com/users/3651607/Andy-korneyevによって投稿されています)。

+0

問題は「月」が標準単位ではないことです。たとえば、61日の間隔がある場合、その2ヶ月(31日の月の後に30日の月が続きます)ですか? 2ヶ月1日(2月30日プラス1日)?あるいは、月のうちの1ヶ月は28日か29日です。あなたが望むアルゴリズムを定義することができれば、私たちは助けてくれるかもしれませんが、そのようなことを分かりやすく定義するのは難しいかもしれません。 –

+0

次のコードを使用して月の日数を計算しています。 「Employee_hired(デュレーション)= "Xmonths、Xdays、Xhours、Xminと、Xseconds" \t \t の面で従業員の入社年月日を計算するために、今すぐ - デュアルからTO_CHAR(LAST_DAY(SYSDATE)、 'DD')を選択します今、上記のコード(私の質問で)は、日、時間、分、秒を計算します。欠けているのは "月"です!!!!!!!!!あなたの応答を楽しみにしています!:) – user7051332

答えて

1

MONTHS_BETWEEN(date1, date2)を使用して、Oracleで月差を計算します。

+0

私は使用しています – user7051332

+0

から従業員のhire_dateを計算するために、Employee_hired(duration)= "Xmonths、Xdays、Xhours、Xminの用語で計算するために、 、Xseconds " – user7051332

+0

上記のコード(私の質問では)はすでに、日、時間、分、秒を計算しています。行方不明のものはすべて「月」です!!!!!!!!!あなたのお返事をお待ちしております! :) – user7051332

関連する問題