問題:
您需要從包含以下內容的表中提取連續的日期範圍單列未排序的日期。這些範圍表示需要開始日期和結束日期才能準確填入日曆物件的時間段。
解決方案:
方法:
為了使用SQL 解決這個問題,我們可以採用“間隙和島嶼”方法。此方法根據連續日期與行號的差異對連續日期進行分組,因為該值對於每個連續序列保持不變。然後,我們使用 MIN() 和 MAX() 函數提取每個群組的開始和結束日期。
SQL 查詢:
WITH t AS ( SELECT InfoDate d,ROW_NUMBER() OVER(ORDER BY InfoDate) i FROM @d GROUP BY InfoDate ) SELECT MIN(d),MAX(d) FROM t GROUP BY DATEDIFF(day,i,d)
解釋:
輸出:
結果表應包含以下內容columns:
此輸出提供每個連續日期範圍的開始和結束日期,讓您可以使用以下內容填入日曆物件必要的日期資訊。
以上是如何在 SQL 中識別和提取連續的日期範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!