如何将提取语句合并到数学运算中?

时间:2016-10-04 14:27:38

标签: postgresql math extract amazon-redshift

我必须简单地减去时间,但需要帮助在一个脚本中实现两个查询。

由于对DB的一些内部限制,我无法使用postgresql中的任何方法转换时间戳列。相反,我使用" extract"拉出小时,分钟,秒,并将它们重新加入一列。

我的问题是我如何组合提取语句和我写的数学函数语句,从下面的第二个单元格中减去时间并添加单词" min"或" sec"如果从分钟或秒中减去时间,如果不可能,则不用担心。 。例如:

table A
  time          new_time(logic) 
0 4:50:55       time(1) - time(0) = 1sec
1 $:50:56       time(2) - time(1)

提取声明:

select (extract(hour from timestamp) || ':' || extract(minute from timestamp) || ':' || extract(second from timestamp)) as my_time 
from tableA

数学陈述:

update page
set time= timestamp
from (
    select tableA.timestamp - lead(tableA.timestamp) over (order by time) 
    from tableA
    ) 
where tableA.id = tableB.id

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

update page
set time = timestamp
from (
    select id,
        lead(timestamp::time) - timestamp::time over (order by timestamp::time) 
    from tableA
) tableA
where tableA.id = page.id