PostgreSQL获得的记录将在接下来的两天内到期

时间:2016-11-06 17:44:36

标签: postgresql

我使用EXPIRY列作为存储纪元时间的bigint。我需要找到所有将在接下来的48小时内到期的记录。 像这样:

select * from bottles where current_epoch_time - EXPIRY < 48 hours

我还需要订购记录,以便首先到期的瓶子应该是第一个记录,最后到期的瓶子应该是最后一个记录。

我希望我能够清楚地表达我的问题。

提前致谢

1 个答案:

答案 0 :(得分:1)

这是一种方法:

select b.*
from bottles b
where EXPIRY >= extract(epoch from now()) and
      EXPIRY < extract(epoch from (now() + interval '48 hours') ) 

请注意,所有功能和计算都不在EXPIRY上。这使得Postgres更容易在该列上使用索引 - 加快查询速度。