2012-06-06 18 views
39

Aşağıdaki tabloya projects sahip.Postgresql datetime gün sayısı nasıl eklenir

id title  created_at      claim_window 
1 Project One 2012-05-08 13:50:09.924437  5 
2 Project Two 2012-06-01 13:50:09.924437  10 

A) Son tarihi deadline = created_at + claim_window(No. of days) numaralı hesaplamayla bulmak istiyorum.

Takip gibi bir şey.

id title  created_at      claim_window deadline 
1 Project One 2012-05-08 13:50:09.924437  5   2012-05-13 13:50:09.924437 
2 Project Two 2012-06-01 13:50:09.924437  10   2012-06-11 13:50:09.924437 

B] Ben de kimin son tarih

id title  created_at      claim_window deadline 
1 Project One 2012-05-08 13:50:09.924437  5   2012-05-13 13:50:09.924437 

gitmiş aşağıdaki gibi bir şey denemek projeleri bulmak istiyoruz. Bazı nedenlerle çalışmıyorsa, .

cevap

70

Bu, son tarih verecektir:

select id, 
     title, 
     created_at + interval '1' day * claim_window as deadline 
from projects 

tarihi bitti bütün projeleri, kullanım almak için:

select * 
from (
    select id, 
     created_at + interval '1' day * claim_window as deadline 
    from projects 
) t 
where localtimestamp at time zone 'UTC' > deadline 
+0

ama bir daha sorun benim created_at meydana olduğu zaman olmadan veri türü 'damgası vardır zone' VE current_timestamp datatype 'zaman damgası ile zaman dilimi' vardır, bu yüzden doğru yanıt alamadım – Salil

+0

@Salil:' LOCALTIMESTAMP' 'zaman dilimi olmayan bir zaman damgası'dır –

+0

@Salil: Ayrıca önemli değil, sonuç olur "timestamp" veya "timestamptz" ile aynı, l olarak Veriler, zamanla aynı noktaya atıfta bulunur. Bir gün eklemek, her ikisinde de aynı etkiye sahiptir. –

İlgili konular