使用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