在 T-SQL 中產生日期序列:高效率方法
本文探討了使用 T-SQL 建立指定範圍內的一系列連續日期的有效技術,與 SQL Server 2005 及更高版本相容。 雖然 WHILE
循環是一種可能的方法,但對於較大的日期範圍,它的效率可能較低。 更好的方法是利用 spt_values
系統表。
對於長達 2047 天的日期範圍,以下 T-SQL 查詢提供了有效的解決方案:
<code class="language-sql">DECLARE @startDate DATETIME, @endDate DATETIME; SET @startDate = GETDATE(); SET @endDate = DATEADD(day, 100, @startDate); SELECT DATEADD(day, number, @startDate) AS IncrementalDate FROM (SELECT number FROM master.dbo.spt_values WHERE [type] = 'P') AS NumberSequence WHERE DATEADD(day, number, @startDate) < @endDate;</code>
此查詢利用 spt_values
中的數字序列來產生日期系列。 它將序列中的每個數字加到 @startDate
,有效地建立遞增日期。 WHERE
子句確保產生的日期落在 @startDate
和 @endDate
定義的所需範圍內。 這種方法避免了通常與迭代WHILE
循環方法相關的性能限制。
以上是如何在 T-SQL 中產生一系列遞增日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!