C# 使用C在数据库中的两个日期之间插入数据
我需要帮助。我们需要在数据库中使用C在两个日期之间插入数据 例如,我们有两个日历,Calendar1和Calendar2 现在从日历1中,我们选择2018年12月1日 从日历2中,我们选择日期为2018年12月30日 单击Submit按钮时,需要将数据插入数据库 2018年12月1日至2018年12月30日 前C# 使用C在数据库中的两个日期之间插入数据,c#,asp.net,sql-server,webforms,C#,Asp.net,Sql Server,Webforms,我需要帮助。我们需要在数据库中使用C在两个日期之间插入数据 例如,我们有两个日历,Calendar1和Calendar2 现在从日历1中,我们选择2018年12月1日 从日历2中,我们选择日期为2018年12月30日 单击Submit按钮时,需要将数据插入数据库 2018年12月1日至2018年12月30日 前 可以使用递归CTE在两个日期之间生成表: with dates as ( select @startdate as dte union all sel
可以使用递归CTE在两个日期之间生成表:
with dates as (
select @startdate as dte
union all
select dateadd(day, 1, dte)
from dates
where dte < @enddate
)
select *
from dates
option (maxrecursion 0);
也就是说,如果您需要为用户界面执行此操作,那么我认为您确实需要一个日历表,每个日期一行。然后你可以简单地做:
select c.dte
from calendar c
where c.dte >= @startdate and c.dte <= @enddate;
我个人更喜欢理货台而不是rCTE这样的东西;对于较大的数据集,理货表往往要快得多:
DECLARE @StartDate date = '20181201',
@EndDate date = '20181231';
WITH N AS (
SELECT N
FROM (VALUES(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL))N(N)),
Tally AS (
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) -1 AS I
FROM N N1, N N2, N N3, N N4) --10000 rows
SELECT DATEADD(DAY, T.I, @StartDate)
FROM Tally T
WHERE DATEADD(DAY, T.I, @StartDate) <= @EndDate;
欢迎你试图解决什么问题?请编辑您的问题并插入您的代码。抱歉,您的问题不清楚。这是在数据库中插入数据还是其他问题。也许添加您迄今为止为解决问题而编写的代码会有所帮助尊敬的先生,现在我编辑了我的问题,请检查
DECLARE @StartDate date = '20181201',
@EndDate date = '20181231';
WITH N AS (
SELECT N
FROM (VALUES(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL))N(N)),
Tally AS (
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) -1 AS I
FROM N N1, N N2, N N3, N N4) --10000 rows
SELECT DATEADD(DAY, T.I, @StartDate)
FROM Tally T
WHERE DATEADD(DAY, T.I, @StartDate) <= @EndDate;