【发布时间】:2019-03-17 10:13:27
【问题描述】:
假设我有一张这样的桌子:
CREATE TABLE table1
(
CreatedAt DAteTimeOffset NULL
);
如何在while 循环中插入该表的第 500 行并每 5 秒设置一次日期?我希望我的结果是这样的:
2018-10-08 05:00:00.0000000 +00:00
2018-10-08 05:00:05.0000000 +00:00
2018-10-08 05:00:10.0000000 +00:00
2018-10-08 05:00:15.0000000 +00:00
2018-10-08 05:00:20.0000000 +00:00
2018-10-08 05:00:25.0000000 +00:00
2018-10-08 05:00:30.0000000 +00:00
2018-10-08 05:00:35.0000000 +00:00
2018-10-08 05:00:40.0000000 +00:00
2018-10-08 05:00:45.0000000 +00:00
2018-10-08 05:00:50.0000000 +00:00
2018-10-08 05:00:55.0000000 +00:00
2018-10-08 05:01:00.0000000 +00:00
2018-10-08 05:01:05.0000000 +00:00
2018-10-08 05:01:10.0000000 +00:00
2018-10-08 05:01:15.0000000 +00:00
等等……
我在这里有一个 while 循环,但我不知道如何实现每 5 sek 插入具有值的连续行。
DECLARE
@i int = 0
WHILE @i < 500
BEGIN
INSERT INTO table1
(CreatedAt)
VALUES
(?)
END
【问题讨论】:
-
这是使用"tally table"的绝佳候选者
-
select datetimefromparts(2018, 10, 12, 10, 22, 5, 0) 并用变量替换数字。但是使用计数表确实会更好
标签: sql-server tsql datetime while-loop datetimeoffset