處理多個日期範圍時,產生這些範圍內的所有日期可能是一個挑戰。讓我們探索處理這種情況的有效解決方案。
提供的輸入由兩個日期範圍組成:
ID START_DATE END_DATE 101 April, 01 2013 April, 10 2013 102 May, 10 2013 May, 12 2013
我們的目標是產生一個輸出表,列出這些範圍內的所有日期:
ID Dates 101 April, 01 2013 101 April, 02 2013 101 April, 03 2013 101 April, 04 2013 101 April, 05 2013 101 April, 06 2013 101 April, 07 2013 101 April, 08 2013 101 April, 09 2013 101 April, 10 2013 102 May, 10 2013 102 May, 11 2013 102 May, 12 2013
為了實現這一點,我們可以利用以下SQL查詢:
select A.ID, A.START_DATE+delta 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 <= A.end_date order by 1, 2
查詢產生最大日期範圍內所有可能的日期差異,然後將它們新增至每個開始日期以產生所需的輸出。
以上是如何使用 SQL 產生多個日期範圍內的所有日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!