最近有个定时任务的需求,需要检查数据库中某个时间的范围距离当前时间3天内,如果postgresql能够支持做运算的话,这个实现就很容易嘛
SELECT *
FROM tb_apply
WHERE
(to_date(invalid_time::text, 'yyyy-mm-dd') - to_date(now()::text, 'yyyy-mm-dd')) <=3 and
(to_date(invalid_time::text, 'yyyy-mm-dd') - to_date(now()::text, 'yyyy-mm-dd')) > 0
往上也有类似的需求,但是他们的实现中使用to_char()会有转换类型异常的问题,所以这里使用::text的效果事一样子的,简单明了的一个需求就这样实现了。