使用SQL Server 2000。如果開始日期是06/23/2008
和結束日期是06/30/2008
如何顯示所有給定的兩個日期之間的日期在SQL
然後,我需要查詢的輸出作爲
06/23/2008
06/24/2008
06/25/2008
.
.
.
06/30/2008
我所創建的表的名稱作爲整數,其具有1列,列中的值是0,1,2,3,4,5,6,7,8,9然後我用下文提到的查詢
嘗試查詢
SELECT DATEADD(d, H.i * 100 + T .i * 10 + U.i, '" & dtpfrom.Value & "') AS Dates
FROM integers H
CROSS JOIN integers T
CROSS JOIN integers U
order by dates
以上查詢僅顯示999日期。 999日期表示(365 + 365 + 269)僅限日期。假設我想選擇3年以上(01/01/2003至01/01/2008)。以上查詢不適合。
如何修改我的查詢?或者任何其他查詢可用於上述條件。
請向我提供查詢。
這是2005年之前的理想方法,因爲您不能使用CTE - 請參閱此問題中的註釋以瞭解詳細信息:http://stackoverflow.com/questions/1478951/tsql-generate-a-resultset-of -incrementing-dates/1479028#1479028 – 2009-09-29 06:24:42
這個循環會比使用傳統數字表慢得多,如我的答案中所述。如果這是一次性的事情,這可以使用。但是,如果您將生成許多日期範圍,請使用更高效的無循環方法。 – 2009-09-29 15:10:08
是的 - 但你不需要額外的數字表!而對於10到20行,我不知道差異會有多大。 – 2009-09-29 15:32:37