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

PostgreSQL查询当前日期起未来14天数据的正确SQL写法

问题原因

你编写的SQL存在核心逻辑错误,导致无法返回预期结果:

  • 比较方向完全写反:tanggal > current_date + (14 * interval '1' day) 这个条件匹配的是晚于当前日期14天之后的所有记录,和你需要的「从当前日期开始未来14天内」的查询范围完全相反。
  • 未设置范围下限:原语句没有限定日期不能早于当前日期,就算调整比较符号,也可能混入历史日期数据。
正确查询方案

根据你的字段属性(tanggal为日期类型),直接使用整数做日期加减执行效率更高,正确SQL如下:

SELECT * FROM tbl_product 
WHERE tanggal >= CURRENT_DATE 
  AND tanggal <= CURRENT_DATE + 14;

如果tanggal是带时分秒的timestamp类型,为了避免边界时间的匹配误差,推荐用左闭右开的区间写法:

SELECT * FROM tbl_product 
WHERE tanggal >= CURRENT_DATE
  AND tanggal < CURRENT_DATE + INTERVAL '15 days';

写法说明:CURRENT_DATE默认取当前日期的0点,< CURRENT_DATE + INTERVAL '15 days'可以完整覆盖当前日期到14天后23:59:59的所有数据,不会出现漏匹配、多匹配的问题。

以你给出的测试数据为例,如果当前日期为2022-06-14,查询范围为2022-06-14至2022-06-28,只会返回id=1的Item a记录;id=2的记录日期为2022-06-29超出14天范围,id=3为历史日期数据,均不会被返回,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:27:19