添加和增加日期和时间(Postgresql)
发布时间:2020-12-13 15:50:28 所属栏目:百科 来源:网络整理
导读:以下是一个表格,用于显示媒体播放的时间.所以基本上它有一个开始时间(开始),轨道的长度(clip_length),以及它何时结束(结束=开始clip_length),最后是轨道的位置. |starts | ends |position |file_id| clip_length|2013-08-30 22:00:00 | 2013-08-30 22:03:08
以下是一个表格,用于显示媒体播放的时间.所以基本上它有一个开始时间(开始),轨道的长度(clip_length),以及它何时结束(结束=开始clip_length),最后是轨道的位置.
|starts | ends |position |file_id| clip_length |2013-08-30 22:00:00 | 2013-08-30 22:03:08 |0 |16 |00:03:08.081768 |2013-08-30 22:03:08 | 2013-08-30 22:06:33 |1 |17 |00:03:25.436485 |2013-08-30 22:06:33 | 2013-08-30 22:09:07 |2 |7 |00:02:33.79968 |2013-08-30 22:09:07 | 2013-08-30 22:12:21 |3 |3 |00:03:14.020273 |2013-08-30 22:12:21 | 2013-08-30 22:15:31 |4 |8 |00:03:10.466689 我想要做的是添加一个记录,比如说position = 2,如下所示.我已经能够增加位置,但问题在于时间都搞砸了. |starts | ends |position |file_id|clip_length |2013-08-30 22:00:00 | 2013-08-30 22:03:08 |0 |16 |00:03:08.081768 |2013-08-30 22:03:08 | 2013-08-30 22:06:33 |1 |17 |00:03:25.436485 |2013-08-30 22:06:33 | 2013-08-30 22:09:07 |2 |7 |00:02:33.79968 |2013-08-30 22:06:33 | 2013-08-30 22:11:03 |3 |1 |00:04:30.006958 |2013-08-30 22:09:07 | 2013-08-30 22:12:21 |4 |3 |00:03:14.020273 |2013-08-30 22:12:21 | 2013-08-30 22:15:31 |5 |8 |00:03:10.466689 因此可以使用第一个开始时间..作为点00,并添加clip_length以开始并保存到第一个开始时间.然后对于第二个使用第一个结束值作为开始并递归地执行此操作直到结束(在位置之后). 提前致谢.. 解决方法
SQL Fiddle
update clip c set starts = s.starts,ends = s.ends from ( select starts,starts + clip_length as ends,file_id,position from ( select '2013-08-30 22:00:00'::timestamp + sum(clip_length) over(order by position) - clip_length as starts,clip_length,position from clip ) s ) s where c.file_id = s.file_id (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |