有没有一种方法可以在SQL中自动填充日期

时间:2019-06-24 05:43:45

标签: sql sql-server datetime

我的第一个问题是,我一直在通过手工创建日期来将日期添加到数据库中,这非常费力。我正在寻找一种自动添加日期的方法,就像在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')

我想知道一种方法,而不是手动复制粘贴每个日期,如果有一种方法可以将连续的日期一直添加到某个范围内。

示例: 11/22/01 05:30:20 。 。 。 。 11/30/01 05:30:20

我是SQL的新手,我不知道自己在做什么,但我愿意尝试所有建议

1 个答案:

答案 0 :(得分:2)

如果我理解正确!

如果要获取(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