Вставить данные между двумя датами в базе данных, используя C # - PullRequest
0 голосов
/ 01 июня 2019

Мне нужна помощь. Нам нужно вставить данные между двумя датами в базу данных, используя C # при нажатии кнопки

Например, у нас есть два календаря, Calendar1 & Calendar2.

  • Теперь из Calendar1, мы выбираем дату 01/12/2018
  • А из Calendar2 выбираем дату 30/12/2018

Когда мы нажимаем кнопку «Отправить», нам нужно вставить данные в базу данных

01/12 / 2018–30 / 12/2018

Ex.

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

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Лично я предпочитаю 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;
0 голосов
/ 01 июня 2019

Вы можете создать таблицу между двумя датами, используя рекурсивные 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...