我有以下的表格
A) 我想通过计算找到截止日期,公式为
B) 我还想找到截止日期已过的项目。
我尝试了类似以下的方法,但是没有成功。
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) 我想通过计算找到截止日期,公式为
deadline = created_at + claim_window
,其中 claim_window
是天数。类似以下的形式: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) 我还想找到截止日期已过的项目。
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
我尝试了类似以下的方法,但是没有成功。
SELECT * FROM "projects"
WHERE (DATE_PART('day', now()- created_at) >= (claim_window+1))
timestamp without time zone
,而current_timestamp的数据类型为timestamp with time zone
,因此我无法得到正确的答案。 - SalilLOCALTIMESTAMP
是一个没有时区的时间戳。 - user330315timestamp
还是timestamptz
,结果都是一样的,只要数据指向的是同一时刻。在两者上加一天的效果也是相同的。 - Erwin Brandstetterlocaltimestamp at time zone 'UTC'
重新计算本地时间戳为UTC。 - user330315with t as ( select id , created_at + interval '1' day * claim_window as deadline from projects ) select * from t where localtimestamp at time zone 'UTC' > deadline
- PhilHibbs