Reputation: 47542
I have the following table projects
.
id title created_at claim_window
1 Project One 2012-05-08 13:50:09.924 5
2 Project Two 2012-06-01 13:50:09.924 10
A) I want to find the deadline with the calculation deadline = created_at + claim_window
, where claim_window
is the number of days. Something like following:
id title created_at claim_window deadline
1 Project One 2012-05-08 13:50:09.924 5 2012-05-13 13:50:09.924
2 Project Two 2012-06-01 13:50:09.924 10 2012-06-11 13:50:09.924
B) I also want to find the projects whose deadline is gone:
id title created_at claim_window deadline
1 Project One 2012-05-08 13:50:09.924 5 2012-05-13 13:50:09.924
I tried something like following, but it didn't work.
SELECT * FROM "projects"
WHERE (DATE_PART('day', now()- created_at) >= (claim_window+1))
Upvotes: 151
Views: 283571
Reputation: 21
I would suggest this if you need to add the number of days to the timestamp: SELECT (now() + (:count_days * INTERVAL '1 days'))::timestamp;
Upvotes: 0
Reputation: 473
you can just use the below code to append or substract any date field
select date('08/30/2021') + 180 ---it will give next 180 days date
select current_date + 180 ---it will give next 180 days date
select current_date - 180 ---it will give before 180 days date
Upvotes: 11
Reputation:
This will give you the deadline :
select id,
title,
created_at + interval '1' day * claim_window as deadline
from projects
Alternatively the function make_interval
can be used:
select id,
title,
created_at + make_interval(days => claim_window) as deadline
from projects
To get all projects where the deadline is over, use:
select *
from (
select id,
created_at + interval '1' day * claim_window as deadline
from projects
) t
where localtimestamp at time zone 'UTC' > deadline
Upvotes: 227
Reputation: 756
For me I had to put the whole interval in single quotes not just the value of the interval.
select id,
title,
created_at + interval '1 day' * claim_window as deadline from projects
Instead of
select id,
title,
created_at + interval '1' day * claim_window as deadline from projects
Upvotes: 35