Oracle で複数の日付範囲にわたる日付を生成するにはどうすればよいですか?
Jan 02, 2025 pm 03:06 PM日付生成のための複数の日付範囲の処理
2 つの日付間の日付の生成は、さまざまなプログラミング シナリオでよく発生します。単一の範囲の日付を生成するのは簡単ですが、この機能を拡張して複数の範囲を処理するには課題が生じる可能性があります。
各行が日付範囲を表す次の表を考えてみましょう。
ID | START_DATE | END_DATE |
---|---|---|
101 | April 1, 2013 | April 10, 2013 |
102 | May 10, 2013 | May 12, 2013 |
期待される値出力は各範囲内の個別の日付を生成する必要があります:
ID | Dates |
---|---|
101 | April 1, 2013 |
101 | April 2, 2013 |
... | ... |
101 | April 10, 2013 |
102 | May 10, 2013 |
102 | May 11, 2013 |
102 | May 12, 2013 |
Oracle はこれを実現するための独創的なソリューションを提供しています。 result:
select A.ID, A.START_DATE + (delta - 1) dt from t_dates A, ( select level-1 as delta from dual connect by level-1 <= ( select max(end_date - start_date) from t_dates ) ) where A.START_DATE + (delta - 1) <= A.end_date order by 1, 2;
デルタ列は、Oracle の CONNECT BY 階層を使用して、1 からテーブル内の終了日と開始日の最大の差までの一連の整数を生成します。 A.START_DATE (デルタ - 1) 式は、結果内の各レコードの適切なデルタだけ開始日を増分します。 WHERE 句は、現在の日付範囲の終了日を超える結果を除外します。
Oracle で複数の範囲にわたる日付を生成するためのこの洗練されたソリューションをお楽しみください!
以上がOracle で複数の日付範囲にわたる日付を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
