2013-05-14 150 views
0

場景:更新時間戳列

我們有一個表:

GAME_PLAYED(ID,開始,game_duration)

在UI我們展示了編號,開始時間,結束時間。

(啓動和FINISH_TIME在Postgres的timestmap的game_ruation的類型爲:整數,它顯示了秒)(提前結束時,通過加入開始時間+遊戲時間計算)

現在由於需求的變化,我們都添加另一列:FINISH_TIME。 對於舊數據,我們想要更新現有的表格以填充FINISH_TIME中的值。

所以我們正在爲此嘗試。

如果我寫staement這樣的:

Select start, start+ INTERVAL 60 SECONDS as end 
from GAME_PLAYED as FINISH_TIME 
where id = 123 

這個工程。

如果我寫

Select start, start + INTERVAL (
    SELECT game_duration 
    from GAME_PLAYED 
    where id = 123) AS FINISH_TIME 
from GAME_PLAYED 
where id = 123 

查詢不起作用。 任何人都可以告訴我什麼是缺少的或我做錯了什麼? BTW

SELECT 
    start, 
    start + game_duration * INTERVAL '1 SECONDS' AS finish_time 
FROM "GAME_PLAYED" WHERE id = 123; 

+0

什麼是game_duration的數據類型? – Hikiko 2013-05-14 07:35:18

+0

game_ruation的類型是:integer,它顯示秒數。 – 2013-05-14 07:37:11

+2

「不行」意味着什麼?哦,那些想用保留字「begin」作爲列的用戶應該被解僱。 – Bohemian 2013-05-14 07:37:56

回答

2

試試這個沒有必要,如果你要計算完成時間與持續時間從同一行連續做子查詢。

+0

謝謝,因爲我在做:)乾杯。 – 2013-05-14 08:00:17

0

我找到了解決辦法:

我想這樣的事情

Select start, start+ INTERVAL '1 SECONDS'* duration 
from GAME_PLAYED as FINISH_TIME 
where id = 123 
0

一天秒1 /(60 * 60 * 24)。

Select start, start + game_duration/(60*60*24) as end 
from GAME_PLAYED as FINISH_TIME 
where id = 123