我需要几行插入基于SQL Server数据库的Start Date
和End Date
文本框。
EG tbStartDate.Text = "25/12/2012"
和tbEndDate.Text = "29/12/2012"
因此,我需要插入各行的日期如下:
25/12/2012
26/12/2012
27/12/2012
28/12/2012
29/12/2012
请你能帮助我必要的T-SQL来实现这一目标?
我需要几行插入基于SQL Server数据库的Start Date
和End Date
文本框。
EG tbStartDate.Text = "25/12/2012"
和tbEndDate.Text = "29/12/2012"
因此,我需要插入各行的日期如下:
25/12/2012
26/12/2012
27/12/2012
28/12/2012
29/12/2012
请你能帮助我必要的T-SQL来实现这一目标?
由于总是有几种方法。 这里是其中的一些:
你可以写在你的应用程序代码,通过天循环并插入每天一条记录。 (通常最坏设计)
你可以调用一些SQL脚本,做这一切在数据库中。
您可以在存储过程中包裹你的SQL脚本,并通过在开始和结束日期,并获得存储过程来为你做它。
您可以交叉连接到一个预先存在理货表并用它来生成你的记录。
如果您可以提供
的SQL Server版本-the您使用
- 什么表看起来像
- 不论你使用C#或VB
那么,我们可以进一步帮助,因为它可能很难日期传递到数据库。 它可以是特别困难的,如果你不对其进行验证。
反正这里是你的选择3。
CREATE PROC dbo.t_test
@StartDate DATETIME,
@EndDate DATETIME
AS
WHILE @StartDate <= @EndDate
BEGIN
INSERT INTO YourTable(YourDateField) VALUES (@StartDate)
SET @StartDate = DATEADD(d,1,@StartDate)
END
然后,你需要从ASP.Net调用此存储过程(称为dbo.t_test),并且在两个日期指标的影响传递的日期。
Declare @Startdate datetime
Select @Startdate='20121025'
While @Startdate<='20121029'
begin
if not exists(select * from dummy where DATE=@Startdate)
insert into dummy (date) values (@Startdate)
set @Startdate=@Startdate + 1
end;