使用C#在数据库中的两个日期之间插入数据

时间:2019-06-01 12:09:35

标签: c# asp.net sql-server webforms

我需要帮助。我们需要单击按钮时使用C#在数据库中的两个日期之间插入数据

例如,我们有两个日历Calendar1Calendar2

  • 现在从Calendar1开始,我们选择日期01/12/2018
  • Calendar2中,我们选择日期30/12/2018

当我们单击“提交”按钮时,我们需要将数据插入数据库

从01/12/2018至30/12/2018

例如。

01/12/2018
02/12/2018
03/12/2018

2 个答案:

答案 0 :(得分:0)

您可以使用递归CTE生成两个日期之间的表格:

select c.dte
from calendar c
where c.dte >= @startdate and c.dte <= @enddate;

也就是说,如果您需要为用户界面执行此操作,那么我认为您确实需要一个日历表,每个日期一行。然后,您可以简单地执行以下操作:

top: 50%;
transform: translateY(-175%);

答案 1 :(得分:0)

对于这样的事情,我个人更喜欢使用Tally Table而不是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;