1

我一直在研究一个 SQL 语句,我可以在其中选择开始日期和结束日期,并将其间的所有日期添加到表中。此开始日期和结束日期附有一个 ID。例如我选择 1/1/2012 和 4/1/2012 并且 id 是 1 结果应该如下

reqId   reqDate
1       1/1/2012
1       2/1/2012
1       3/1/2012
1       4/1/2012

我的sql语句如下

"Insert into Request(reqId, reqDate) " & _
"Select @request, reqDate From Request where reqDate between @start and @end "

它什么也没做,所以我不确定我是否走在正确的轨道上。

4

1 回答 1

1

不知道您使用的是什么数据库系统,这是一个用于 SQL Server(2008 或更高版本)的数据库系统:

declare @Start date
declare @end date
declare @request int

set @Start = '20120101'
set @end = '20120104'
set @request = 1

;with Dates as (
    select @request as reqId,@Start as reqDate
    union all
    select reqId+1,DATEADD(day,1,reqDate) from Dates
    where reqDate < @end
)
select * from Dates

结果:

reqId       reqDate
----------- ----------
1           2012-01-01
2           2012-01-02
3           2012-01-03
4           2012-01-04

(我最初说的是 2005 年或以后,然后意识到我正在使用date。对于 2005 年,替换datedatetime

于 2012-07-04T06:23:31.667 回答