我必须简单地减去时间,但需要帮助在一个脚本中实现两个查询。
由于对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
提前谢谢你。
答案 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