可能重复:
how to insert record into database on single button click from date to todate ?
我有两个文本框.... textbox1和textbox2
textbox1 ==从日期中选择 textbox2 ==选择日期
如果用户从textbox1中的日期选择为2011年5月1日,则在textbox2中选择2011年5月30日
然后将从01-MAy-2011到2011年5月30日的所有日期插入到mssql2005数据库的每一行......
例子。 。 :
IN数据库Table1结构......
ID Date
1 01-MAy-2011
2 02-MAy-2011
3 03-MAy-2011
4 04-MAy-2011
5 05-MAy-2011
依此类推至2011年5月30日
答案 0 :(得分:1)
使用递归CTE?
DECLARE @date1 datetime, @date2 datetime --use date with SQL Server 2008
SELECT @date1 = '20110501', @date2 = '20110530'
;WITH cDateRange AS
(
SELECT
@date1 AS TheDate
UNION ALL
SELECT
DATEADD(day, 1, TheDate) -- keep in the date/time domain. No implicit CASTs
FROM
cDateRange
WHERE
DATEADD(day, 1, TheDate) <= @date2
-- no need: we are comparing same datatypes DATEDIFF(day, DATEADD(day, 1, TheDate), @date2) >= 0
)
INSERT mytable (ID, TheDate)
SELECT
--Use ROW_NUMBER to deal with month boundaries
ROW_NUMBER() OVER (ORDER BY TheDate) AS [id],
TheDate
FROM
cDateRange