加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

添加和增加日期和时间(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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读