2012-07-02 16 views
13

'dan Timestamp'a Aralık Ekle Bir başka sütunla karşılaştırmak için bir tamsayı sütunundan bir zaman damgası içeren dakikalar eklemem gerekiyor. PostgreSQL: Sütun değeri

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 tamsayı (dakika) Ben data_extracao(timestamp)NOW() + l.periodicidade(integer - minutes) sonra daha büyük olup olmadığını doğrulamak için gereken
geçerli:

İşte bir örnek.

Nasıl yapabilirim?

+0

yardımcı

Umut: Sorgunuzda yanlış takma: 't3' –

cevap

22

Böyle Sorgunuzla yazabilirsiniz: Eğer baz ünitesini tanımlamak ve gerçek zaman aralığını çarpın INTERVAL '1 minute' ile çok

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) 

Gördüğünüz gibi, tamsayılar ile aralıklarını çarpabilirsiniz. Kenara

+0

Büyük yardım olarak <-->' extracao e.data_extracao'! Teşekkürler –