產生多個日期範圍內的日期
當要求超出單一日期範圍時,產生多個日期範圍內的所有日期會帶來挑戰。本文針對此類場景,提供了有效的解決方案。
問題
如提供的SQL Fiddle 所示,任務是產生給定集合的所有日期多個日期範圍,如下所示:
<br>ID START_DATE END_DATE<br>2013 年4 月101 日2013 年 4 月 10 日<br>2013 年 5 月 10 日 2013 年 5 月 10 日<br>
解決方案
解決方案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
以下查詢解決了這個問題:
ORDER BY 子句按ID 對輸出進行排序,然後按日期排序.
範例輸出
對於輸入如果提供,查詢將傳回以下輸出:
<br>ID日期<br>101 April, 01 2013<br>101 April, 02 2013<br>101 April, 03 2013<br>101 四月,04 2013年<br>2013年4月101日,2013年5月<br>2013年4月101日,<br>2013年4月7日101號<br>2013年4月101日,2013年4月8日<br>2013年4月101日,2013年9月<br>4月101日,10 2013年2013年5月102日2013年5月102日2013年5月102日
以上是如何在 SQL 中產生多個日期範圍內的所有日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!