ホームページ > データベース > mysql チュートリアル > 関数やプロシージャを使用せずにOracle SQLで営業日を正確に計算するにはどうすればよいですか?

関数やプロシージャを使用せずにOracle SQLで営業日を正確に計算するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 08:26:10
オリジナル
781 人が閲覧しました

How to Accurately Calculate Business Days in Oracle SQL Without Using Functions or Procedures?

Oracle SQL での営業日の計算: 関数やプロシージャを使用しない改良された式

Oracle SQL での 2 つの日付の間の営業日の計算は、さまざまなビジネスアプリケーション。ここでは、組み込み関数やプロシージャに依存せずにこれを達成するための強化されたアプローチを紹介します。

あなたが提供した以前のコードでは、計算に時折矛盾が発生しました。これを解決するには、次の変更を検討してください。

  • TRUNC(CompleteDate) と TRUNC(InstallDate) を使用して日付を切り詰め、時間コンポーネントを削除し、営業日のみに焦点を当てます。
  • Calculate (TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')) を使用した平日の差週末を考慮して 7 で割ります。
  • 日曜日または土曜日は営業日とみなされないため、条件付きロジックを適用して期間の開始または終了を調整します。

次のとおりです。洗練されたコード:

SELECT OrderNumber, InstallDate, CompleteDate,
  (TRUNC(CompleteDate) - TRUNC(InstallDate) ) +1 - 
  ((((TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')))/7)*2) -
  (CASE WHEN TO_CHAR(InstallDate,'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END) -
  (CASE WHEN TO_CHAR(CompleteDate,'DY','nls_date_language=english')='SAT' THEN 1 ELSE 0 END) as BusinessDays
FROM Orders
ORDER BY OrderNumber;
ログイン後にコピー

この拡張された計算により、Excel の NETWORKDAYS と一致する正確な営業日の結果が得られます。関数。

以上が関数やプロシージャを使用せずにOracle SQLで営業日を正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート