我使用EXPIRY列作为存储纪元时间的bigint。我需要找到所有将在接下来的48小时内到期的记录。 像这样:
select * from bottles where current_epoch_time - EXPIRY < 48 hours
我还需要订购记录,以便首先到期的瓶子应该是第一个记录,最后到期的瓶子应该是最后一个记录。
我希望我能够清楚地表达我的问题。
提前致谢
答案 0 :(得分:1)
这是一种方法:
select b.*
from bottles b
where EXPIRY >= extract(epoch from now()) and
EXPIRY < extract(epoch from (now() + interval '48 hours') )
请注意,所有功能和计算都不在EXPIRY
上。这使得Postgres更容易在该列上使用索引 - 加快查询速度。