Есть ли способ автоматического заполнения дат в SQL - PullRequest
3 голосов
/ 24 июня 2019

Моя первая проблема заключается в том, что я добавляю даты в базу данных, создавая их вручную, и это трудоемко. Я ищу способ автоматического добавления дат, как в Excel.

У меня есть 3 столбца в использовании.

Date (YYYY-MM-DD HH:mm:ss)

TenantID (Name)

Count (Count of tenant ID)

Это то, что я сейчас использую, чтобы добавить даты в базу данных.

INSERT INTO [dbo].[acms_data]
       ([Time]
       ,[TenantId]
       ,[CallingService]
       ,[PolicyList]
       ,[PolicyInstanceList])
 VALUES
       ('2019-11-22 00:00:00'
       ,'4754F795-2FB9-4647-B28F-2CF2412F0BA2' 
       ,'s1'
       ,'p1,p2,p3,p4'
       ,'pi1,pi2,pi3,pi4')

Я хотел бы знать способ, где вместо копирования вручную вставлять каждую дату, если есть способ вместо этого добавить последовательные даты полностью в определенный диапазон.

Пример: 22.11.01 05:30:20 , , , , 30.11.01 05:30

Я новичок в SQL, и я не знаю, что я делаю, но я готов попробовать все предложения

1 Ответ

2 голосов
/ 24 июня 2019

Если я правильно понимаю!

Если вы хотите получить конкретные даты между яростью (N), тогда вы можете использовать следующий запрос.

DECLARE @TEST DATE
SET @TEST = '2019-11-22' -- your date

DECLARE @NoOfDay  INT = 9 -- No of days you want

;WITH N(N) 
AS 
(
    SELECT 1 
    FROM (VALUES(1),(1),(1),(1),(1),(1)) M(N)
), demo(N) AS (SELECT ROW_NUMBER()OVER(ORDER BY N.N)FROM N,N a)
SELECT TOP(day(EOMONTH(@TEST)))
  N day, dateadd(d,N-1, @TEST) date
FROM demo
WHERE N <= @NoOfDay

Выход:

day date
1   2019-11-22
2   2019-11-23
3   2019-11-24
4   2019-11-25
5   2019-11-26
6   2019-11-27
7   2019-11-28
8   2019-11-29
9   2019-11-30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...