我有一个包含开始时间戳和结束时间戳的流程数据表。我希望根据时间戳计算流程的持续时间,然后添加其他行。通过将时间增加 1 分钟直到达到结束时间来添加开始时间戳的列值。表中的所有其他值都应该复制到下一行。


您的起始数据是什么样的(我假设图像来自最终结果)?
编辑:其他图像加载速度稍慢
这是一个可能有效的选项。它确实会创建一个新表,而不是向现有表添加行
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(2),
Compress File When Saved(1),
New Column("S", Character, "Nominal", Set Values({"A1", "A2"})),
New Column("Start",
Numeric,
"Continuous",
Format("d/m/y h:m:s", 22, 0),
Input Format("d/m/y h:m:s", 0),
Set Values([3661768800, 3661769400])
),
New Column("End",
Numeric,
"Continuous",
Format("d/m/y h:m:s", 22, 0),
Input Format("d/m/y h:m:s", 0),
Set Values([3661768980, 3661769700])
),
New Column("Data", Character, "Nominal", Set Values({"A", "B"}))
);
dt_new = dt << Clone;
dt_new << Delete Rows(1::NRows(dt_new));
For Each Row(dt,
For(i = 0, i <= Date Difference(:Start, :End, "minute"), i++,
dt_new << Add Rows(1);
dt_new[N Rows(dt_new), 0] = dt[Row(), 0];
dt_new[N Rows(dt_new), "Start"] = Date Increment(:Start, "minute", i);
);
);
开始

结尾

@jthi我刚刚用真实数据测试了它,效果非常好。谢谢,这正是我想要的。