How to get business days between two dates?
今日はOraQAをご紹介します。
サイトの内容はご説明するまでもなくOracleのQAですね。
とてもシンプルなつくりのページでいいと思っています。
そのQAの中から、2つの日付間に存在する平日を
SELECTするSQLをピックアップしました。
■ OraQA
http://oraqa.com/
■ 引用ページ
http://oraqa.com/2006/08/28/how-to-get-business-days-between-two-dates/
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ How to get business days between two dates?
There are two given dates and I have to find out
the working days between two dates i.e. excluding
Sundays and Saturdays. Please help. Thank you.
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ How to get business days between two dates?
営業日をどのように2つの日付の間から得ますか?
There are two given dates
2つの日付があります。
and I have to find out
そして私は導かなければなりません。
the working days
営業日数を
between two dates
2つの日付の間の
i.e. excluding Sundays and Saturdays.
例えば、日曜日と土曜日を除いたり
Please help. Thank you.
助けてください。よろしくお願いします。
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2つのSQLが回答されているのですが、
1つはちょっと強引で、all_objectsビューを使用しています。
SQLを確認してみるとわかるのですが、2つの日付が10gR2の場合だと
190年くらい開く場合は結果が怪しくなってきます。
もう一つも少し強引で、階層問合せ機能を応用した方法で、
Oracleの階層問合せで可能な最大の階層数までであれば
正常な結果を返すことができますね。
(どなたか最大の階層数をご存知の方いますか?)
このSQLを応用すれば、祝日なども考慮した営業日数の
算出なども簡単にできそうですね。
その方法については引用ページからリンクされている以前ご紹介した
AskTom.comのページにもヒントがあると思います。
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:185012348071
サイトの内容はご説明するまでもなくOracleのQAですね。
とてもシンプルなつくりのページでいいと思っています。
そのQAの中から、2つの日付間に存在する平日を
SELECTするSQLをピックアップしました。
■ OraQA
http://oraqa.com/
■ 引用ページ
http://oraqa.com/2006/08/28/how-to-get-business-days-between-two-dates/
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ How to get business days between two dates?
There are two given dates and I have to find out
the working days between two dates i.e. excluding
Sundays and Saturdays. Please help. Thank you.
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ How to get business days between two dates?
営業日をどのように2つの日付の間から得ますか?
There are two given dates
2つの日付があります。
and I have to find out
そして私は導かなければなりません。
the working days
営業日数を
between two dates
2つの日付の間の
i.e. excluding Sundays and Saturdays.
例えば、日曜日と土曜日を除いたり
Please help. Thank you.
助けてください。よろしくお願いします。
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2つのSQLが回答されているのですが、
1つはちょっと強引で、all_objectsビューを使用しています。
SQLを確認してみるとわかるのですが、2つの日付が10gR2の場合だと
190年くらい開く場合は結果が怪しくなってきます。
もう一つも少し強引で、階層問合せ機能を応用した方法で、
Oracleの階層問合せで可能な最大の階層数までであれば
正常な結果を返すことができますね。
(どなたか最大の階層数をご存知の方いますか?)
このSQLを応用すれば、祝日なども考慮した営業日数の
算出なども簡単にできそうですね。
その方法については引用ページからリンクされている以前ご紹介した
AskTom.comのページにもヒントがあると思います。
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:185012348071
コメントを投稿