2012-07-02 172 views
13

我需要添加來自具有時間戳的整數列的分鐘數,以便與另一列進行比較。PostgreSQL:從列值中將時間間隔添加到時間戳

下面是一個例子:

SELECT t1.id_liame, t1.id_table, t1.periodicidade , t3.data_extracao, 
    CASE WHEN(NOW() < (e.data_extracao + INTERVAL t1.periodicidade || ' 
    MINUTES')) 
    THEN 'yes' ELSE 'no' END 
    FROM table1 as t1 LEFT JOIN liame_has_extracao as t2 USING(id_liame) 
    LEFT JOIN extracao as t3 USING(id_extracao) 

l.periodicidade是整數(分鐘)
我需要驗證,如果data_extracao(timestamp)是大於NOW() + l.periodicidade(integer - minutes)

我該怎麼辦?

+0

旁白:在您的查詢錯誤的別名:'e.data_extracao' <-->'extracao作爲t3' –

回答

22

你可以寫你的查詢是這樣的:

SELECT 
    t1.id_liame, 
    t1.id_table, 
    t1.periodicidade, 
    t3.data_extracao, 
    CASE 
     WHEN(NOW() < (t3.data_extracao + (INTERVAL '1 min' * t1.periodicidade))) 
     THEN 'yes' ELSE 'no' 
    END 
FROM table1 AS t1 
LEFT JOIN liame_has_extracao AS t2 USING(id_liame) 
LEFT JOIN extracao AS t3 USING(id_extracao) 

正如你所看到的,你可以乘區間與整數所以用INTERVAL '1 minute'你定義你的基本單元和乘以你的實際時間間隔。

希望幫助

+0

有很大的幫助!謝謝 –