You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何查询当前及未来仍有效的DATERANGE数据

正确查询仍有效日期范围的方法

原查询的问题在于使用=判断日期范围完全相等,这只会匹配与你指定的DATERANGE('2023-01-09','2025-01-09', '[]')完全一致的记录,显然无法满足“当前及未来仍有效”的需求。

你可以通过以下两种方式实现正确查询:

方法一:使用范围包含操作符

利用PostgreSQL的范围包含操作符@>,判断当前日期是否落在validity_dates范围内:

SELECT id
FROM validity
WHERE validity_dates @> CURRENT_DATE;

方法二:判断范围的上边界

提取validity_dates的上边界,判断其晚于当前日期(适用于需要明确检查有效期结束时间的场景):

SELECT id
FROM validity
WHERE upper(validity_dates) > CURRENT_DATE;

两种方式都能正确返回id为4和5的记录,因为它们的有效期结束时间均晚于当前日期。

内容的提问来源于stack exchange,提问作者Panface

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:20:50