sql - 有没有办法在SQL中自动填充日期

标签 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')

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

示例: 2001 年 11 月 22 日 05:30:20 。 。 。 。 2001 年 11 月 30 日 05:30:20

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

最佳答案

如果我理解正确的话!

如果您想获取 rage (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

关于sql - 有没有办法在SQL中自动填充日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56730447/

相关文章:

java - 将 SQL 列存储到 java 数组中

sql - 用于显示用户组的 postgresql 查询

mysql - T-SQL 存储过程 CASE 问题

java - 如何使用 Joda 时间找到最近的月末日期?

rest - Flutter:DateTime 作为改造方法中的参数; DateTime ISO 8061 序列化;改造日期iso8061格式

r - 将日期时间从 Excel 转换为 R

mysql - 删除表的内容

c# - 如何显示数据库 ASP.Net 中的特定行记录?

asp.net - 链接服务器的 ASP.NET 连接字符串格式是什么?

sql - sp_spaceused - 如何测量 SQL 中所有表的大小(以 GB 为单位)