将结果从一个表插入到另一个表,每个插入的行都有连续的日期
本文关键字:插入 结果 日期 连续 另一个 一个 | 更新日期: 2023-09-27 18:19:56
在我的asp.net应用程序中,我有带有以下插入查询的SqlDataSource:
INSERT INTO Invitations (PatientId, PlanId)
SELECT TOP 10 Patients.Id, @PlanId
FROM Patients
所以基本上它从Patients
表中得到10行,并将它们(某些值)插入到Invitations
表中。@PlanId
是传递给SqlDataSource的附加参数。
我需要的是将值插入到第三列Time
中,该列的类型为time(0), not null
。但我希望这个值以某种方式生成:
对于(i=0;i<10;++i)时间=@InitialTime+i*间隔
例如:
row 1: PatientId = 0; PlanId = 555; Time = 12:00
row 2: PatientId = 1; PlanId = 555; Time = 12:05
row 3: PatientId = 2; PlanId = 555; Time = 12:10
因此,我传递了@InitialTime
参数,并在此基础上以一定的间隔生成了时间字段。。。
在MSSQL中可能吗?
试试这个,它应该可以工作:
INSERT INTO Invitations (PatientId, PlanId, [Time])
SELECT TOP 10
Patients.Id,
@PlanId,
DATEADD(MINUTE,(ROW_NUMBER() OVER (ORDER BY Patients.Id) -1) * 5 ,@InitialTime ) AS [Time]
FROM Patients
我根本不是MS-SQL用户,
这个伪代码可能有助于
CREATE PROCEDURE InsertFromOtherTable
AS
DECLARE my_cur CURSOR FOR SELECT TOP 10 Patients.Id, @PlanId FROM Patients
DECLARE @startTime DATETIME, @interval INT
OPEN my_cur
while (read_one_row_from_cursor)
loop
-- insert the data into other table
-- increment the timer
-- continue loop to next row
end loop;
CLOSE my_cur